iOS UIView 個性彈窗:KLCPopup

jopen 10年前發布 | 31K 次閱讀 KLCPopup iOS開發 移動開發

KLCPopup 是簡單而靈活的,展示自定義彈窗 UIView 的類,帶有各種動畫效果,支持 iPhone 和 iPad,支持界面歡動旋轉,要求 ARC 和 iOS 7 及以上。

Installation

  • Drag the KLCPopup/KLCPopup folder into your project.
  • #import "KLCPopup.h" where appropriate.

Usage

(see sample Xcode project in /KLCPopupExample)

Creating a Popup

Create a popup for displaying a UIView using default animations and behaviors (similar to a UIAlertView):

+ (KLCPopup*)popupWithContentView:(UIView*)contentView;

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 nil for 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.

Showing a Popup

Show popup in middle of screen.

- (void)show;

There are two ways to control where your popup is displayed:

  1. Relative layout presets (see KLCPopup.h for options).

    - (void)showWithLayout:(KLCPopupLayout)layout;
  2. 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 duration:

- (void)showWithDuration:(NSTimeInterval)duration;

Dismissing a Popup

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:

- (void)dismiss:(BOOL)animated;

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:

+ (void)dismissAllPopups;

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

Customization

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;  

Blocks

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)();

Example

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];

iOS UIView 個性彈窗:KLCPopup

項目主頁:http://www.baiduhome.net/lib/view/home/1406191375992

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!