|ReleasedLast Release||Dec 2014|
Maintained by Jeff Mascia.
KLCPopup is a simple and flexible iOS class for presenting any custom view as a popup. It includes a variety of options for controlling how your popup appears and behaves.
KLCPopup/KLCPopupfolder into your project.
#import "KLCPopup.h"where appropriate.
(see sample Xcode project in
Create a popup for displaying a UIView using default animations and behaviors (similar to a UIAlertView):
Or create a popup with custom animations and behaviors. Customizations can also be accessed via properties on the popup instance:
+ (KLCPopup*)popupWithContentView:(UIView*)contentView showType:(KLCPopupShowType)showType dismissType:(KLCPopupDismissType)dismissType maskType:(KLCPopupMaskType)maskType dismissOnBackgroundTouch:(BOOL)shouldDismissOnBackgroundTouch dismissOnContentTouch:(BOOL)shouldDismissOnContentTouch;
Note: You may pass
contentView when creating the popup, but you must assign a
contentView to the popup before showing it!
Also you must give your
contentView a size before showing it (by setting its frame), or it must size itself with AutoLayout.
Show popup in middle of screen.
There are two ways to control where your popup is displayed:
Relative layout presets (see
KLCPopup.h for options).
Explicit center point relative to a view's coordinate system.
- (void)showAtCenter:(CGPoint)center inView:(UIView*)view;
If you want your popup to dismiss automatically (like a toast in Android) you can set an explicit
There are a few ways to dismiss a popup:
If you have a reference to the popup instance, you can send this message to it. If
animated, then it will use the animation specified in
dismissType. Otherwise it will just disappear:
If you lost your reference to a popup or you want to make sure no popups are showing, this class method dismisses any and all popups in your app:
Also you can call this category method from
UIView(KLCPopup) on your contentView, or any of its subviews, to dismiss its parent popup:
- (void)dismissPresentingPopup; // UIView category
Animation used to show your popup:
@property (nonatomic, assign) KLCPopupShowType showType;
Animation used to dismiss your popup:
@property (nonatomic, assign) KLCPopupDismissType dismissType;
Mask prevents touches to the background from passing through to views below:
@property (nonatomic, assign) KLCPopupMaskType maskType;
Popup will automatically dismiss if the background is touched:
@property (nonatomic, assign) BOOL shouldDismissOnBackgroundTouch;
Popup will automatically dismiss if the contentView is touched:
@property (nonatomic, assign) BOOL shouldDismissOnContentTouch;
Override alpha value for dimmed background mask:
@property (nonatomic, assign) CGFloat dimmedMaskAlpha;
Use these blocks to synchronize other actions with popup events:
@property (nonatomic, copy) void (^didFinishShowingCompletion)(); @property (nonatomic, copy) void (^willStartDismissingCompletion)(); @property (nonatomic, copy) void (^didFinishDismissingCompletion)();
UIView* contentView = [[UIView alloc] init]; contentView.backgroundColor = [UIColor orangeColor]; contentView.frame = CGRectMake(0.0, 0.0, 100.0, 100.0); KLCPopup* popup = [KLCPopup popupWithContentView:contentView]; [popup show];
KLCPopup supports Portrait and Landscape by default.
KLCPopup requires iOS 7. It has not been tested on iOS 8 yet.
KLCPopup supports iPhone and iPad.
KLCPopup requires ARC.