KLCPopup, 在iOS中,一个简单而灵活的类,用于将自定义视图呈现为 popup

分享于 

7分钟阅读

GitHub

  繁體 雙語
A simple and flexible class for presenting custom views as a popup in iOS.
  • 源代码名称:KLCPopup
  • 源代码网址:http://www.github.com/jmascia/KLCPopup
  • KLCPopup源代码文档
  • KLCPopup源代码下载
  • Git URL:
    git://www.github.com/jmascia/KLCPopup.git
    Git Clone代码到本地:
    git clone http://www.github.com/jmascia/KLCPopup
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/jmascia/KLCPopup
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    KLCPopup

    KLCPopup是一个简单而灵活的iOS类,用于将任意自定义视图显示为弹出窗口。 它包含了控制弹出菜单显示和行为方式的多种选项。

    ##Installation

    • KLCPopup/KLCPopup 文件夹拖到项目中。
    • 适当的#import"KLCPopup.h"

    ##Usage

    ( 参见 /KLCPopupExample 中的样例Xcode项目)

    创建弹出窗口

    创建一个弹出窗口,使用默认动画和行为( 类似于 UIAlertView ) 显示 UIView:

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

    或者创建带有自定义动画和行为的弹出菜单。 定制还可以通过弹出实例上的属性访问:

    
    + (KLCPopup*)popupWithContentView:(UIView*)contentView
    
    
     showType:(KLCPopupShowType)showType
    
    
     dismissType:(KLCPopupDismissType)dismissType
    
    
     maskType:(KLCPopupMaskType)maskType
    
    
     dismissOnBackgroundTouch:(BOOL)shouldDismissOnBackgroundTouch
    
    
     dismissOnContentTouch:(BOOL)shouldDismissOnContentTouch;
    
    
    
    

    注意:在创建弹出窗口时,你可以通过 nil,但是你必须在显示前给弹出窗口分配一个 contentView

    另外,你必须给你的contentView 一个大小为的大小,显示它( 通过设定它的框架),或者它必须调整自身的AutoLayout AutoLayout AutoLayout。

    显示弹出窗口

    在屏幕中间显示弹出窗口。

     
    - (void)show;
    
    
    
     

    有两种控制弹出窗口显示位置的方法:

    相对布局预设(。查看 KLCPopup.h的选项)。

    
     - (void)showWithLayout:(KLCPopupLayout)layout;
    
    
    
    

    视图系统坐标相对应的中心点。

    
     - (void)showAtCenter:(CGPoint)center inView:(UIView*)view;
    
    
    
    

    如果你想让弹出式菜单自动关闭( 像 Android in ),你可以设置显式的duration:

    
    - (void)showWithDuration:(NSTimeInterval)duration;
    
    
    
    

    取消弹出菜单

    有几种方法可以关闭弹出窗口:

    如果你有对弹出实例的引用,可以将这里消息发送到它。 如果为 animated,则它将使用 dismissType 中指定的动画。 否则它就会消失

    
    - (void)dismiss:(BOOL)animated;
    
    
    
    

    如果你丢失对弹出窗口的引用或者想确保未显示弹出窗口,这里类方法将消除应用程序中的所有弹出:

    
    + (void)dismissAllPopups;
    
    
    
    

    还可以从 UIView(KLCPopup) 上的contentView或者它的任何subviews调用这里类别方法,以取消它的父弹出:

    
    - (void)dismissPresentingPopup;//UIView category
    
    
    
    

    文档级自定义项

    用于显示弹出菜单的动画:

    
    @property (nonatomic, assign) KLCPopupShowType showType;
    
    
    
    

    用于关闭弹出窗口的动画:

    
    @property (nonatomic, assign) KLCPopupDismissType dismissType;
    
    
    
    

    遮罩防止触摸到背景,以传递到以下视图:

    
    @property (nonatomic, assign) KLCPopupMaskType maskType;
    
    
    
    

    如果背景被触摸,弹出窗口将自动关闭:

    
    @property (nonatomic, assign) BOOL shouldDismissOnBackgroundTouch;
    
    
    
    

    如果触摸 contentView,弹出窗口将自动关闭:

    
    @property (nonatomic, assign) BOOL shouldDismissOnContentTouch;
    
    
    
    

    覆盖暗淡背景遮罩的alpha值:

    
    @property (nonatomic, assign) CGFloat dimmedMaskAlpha; 
    
    
    
    

    使用这些块将其他动作与弹出事件同步:

    
    @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 支持纵向 and Landscape。

    扩展部署

    KLCPopup 需要收费的iOS 7.

    设备

    KLCPopup 支持磅的iPhone 和的iPad。

    arc

    KLCPopup 需要 arc。

    待办事项

    • 添加对键盘显示/隐藏的支持。
    • 添加对drag-to-dismiss的支持。
    • 为后台遮罩添加'模糊'选项

    在 ##Credits 中,KLCPopup和团队创建了,它在 Shout照片 Messenger 应用程序中被使用。 KLCPopup的方面是由 vermette SVProgressHUD的Sam 激发的。


    VIEW  PRE    POP  FLEX  查看  
    相关文章