/CNPPopupController

CNPPopupController is a simple and versatile class for presenting a custom popup in a variety of fashions. It includes a many options for controlling how your popup appears and behaves.

Primary LanguageObjective-COtherNOASSERTION

#CNPPopupController

** Updated: Oct, 16 2014 v0.1.0 **

CNPPopupController is a simple and versatile class for presenting a custom popup in a variety of fashions. It includes a many options for controlling how your popup appears and behaves.

Please feel free to contribute to this project, open issues, make suggestions and submit pull-requests. If you use this project in your app, let me know. I'd love to see what you do with it.

Installation

Available in Cocoa Pods

pod 'CNPPopupController'

##Usage

(See sample Xcode project in /CNPPopupControllerExample)

Creating a Popup

Create a popup with custom animations and behaviors. Customizations can also be accessed via properties on the CNPPopupTheme instance:

- (instancetype)initWithTitle:(NSAttributedString *)popupTitle
                 contents:(NSArray *)contents
              buttonItems:(NSArray *)buttonItems
   destructiveButtonItem:(CNPPopupButtonItem *)destructiveButtonItems;

popupTitle only accepts an NSAtributedString object.

contents only accepts an array of NSAttributedString and UIImage objects.

buttonItems only accepts an array of CNPPopupButtonItem objects.

destructiveButtonItem only accepts an CNPPopupButtonItem object.


Note: You may pass nil for any of the initializer properties when creating the popup, but you must assign a theme to the popup before showing it!

A default theme + [CNPPopupTheme defaultTheme] has been created to help you out.


CNPPopupButtonItem allows you to customize the style for each button on a CNPPopupController instance. You may customize button height, color, border width, corner radius, and border color;

Showing a Popup

- (void)presentPopupControllerAnimated:(BOOL)flag;

Dismissing a Popup

- (void)dismissPopupControllerAnimated:(BOOL)flag;

Customization

A CNPPopupTheme instance can be created and assigned to the theme property of a CNPPopupController instance.

@property (nonatomic, strong) UIColor *backgroundColor;

@property (nonatomic, assign) CGFloat cornerRadius;

@property (nonatomic, assign) CGFloat preferredPopupWidth;

@property (nonatomic, assign) CGFloat minimumPopupHeight;

@property (nonatomic, assign) UIEdgeInsets popupContentInsets;

@property (nonatomic, assign) CNPPopupStyle popupStyle;

@property (nonatomic, assign) CNPPopupPresentationStyle presentationStyle;

@property (nonatomic, assign) CNPPopupMaskType maskType;

@property (nonatomic, assign) BOOL shouldDismissOnBackgroundTouch;

@property (nonatomic, assign) CGFloat contentVerticalPadding;

@property (nonatomic, assign) UIStatusBarStyle fullscreenStatusBarStyle;

Notes

Deployment

CNPPopupController works on iOS 7 and iOS 8.

TODO

  • Add 'blur' option for background mask

##Credits CNPPopupController was created by Carson Perrotti, where it's used in the Joist app.