iOS第三方弹层KLCPopup的使用

2021-11-23 10:40:46 浏览数 (2)

很多时候使用一个弹层来提供一个小界面进行提示、选择什么的功能是很有用而且美观的,比如很多广告就是这种弹层的形式...有了弹层以后,我们不需要每次要显示一个东西的时候都跳转到另一个界面中去,当只用显示一点小东西的时候,弹层的价值远远大于新开一个界面,之前使用到了第三方的弹层KLCPopup,当时的需求是要能在弹层上填写内容以及添加按钮,试了几种弹层后发现这种最能满足需求也挺好用的,于是就用了下来,这里说一说简单的使用方式吧。

KLCPopup(github原地址):https://github.com/jmascia/KLCPopup

首先要在一个项目中使用第三方类库,我是用的CocoaPods进行管理的

安装好CocoaPods后,在项目的Podfile中输入

代码语言:javascript复制
pod ‘KLCPopup’, '~>1.0'

然后在终端,也就是命令行输入工具中找到项目文件夹,输入pod install,等待安装完毕就可以了。之后,在项目的prefix.pch中导入KLCPopup:

代码语言:javascript复制
#ifdef __OBJC__  
    #import <UIKit/UIKit.h>  
    #import <Foundation/Foundation.h>  
    #import <KLCPopup.h>  
#endif  

就可以在项目的任何地方直接使用KLCPopup了,不需要再次进行声明。 要生成一个KLC弹层很简单,只需要一行代码,但在此之前,需要先初始化一个视图用来显示在弹层中:

代码语言:javascript复制
PopupViewController *popupView = [[PopupViewController alloc] init];   

其中PopupViewController是自己创建的一个视图控制器,在这个视图控制器的类中具体设计你要显示的内容,加图片也好文本框也好按钮也好,都在这里面编辑,还有界面的大小也是。之后开始把这个视图控制器变成一个弹层:

代码语言:javascript复制
KLCPopup *popupView = [KLCPopup popupWithContentView:popupView.view 
                                showType:KLCPopupShowTypeBounceInFromTop 
                                dismissType:KLCPopupDismissTypeBounceOutToBottom 
                                maskType:KLCPopupMaskTypeDimmed 
                                dismissOnBackgroundTouch:YES 
                                dismissOnContentTouch:NO];

这就是创建弹层的过程,里面涉及很多参数,这里进行一一说明: 首先是popupWithContentView,这个参数就是要显示的view,也就是刚才初始化的那个自定义的视图控制器,但是这个参数的类型是view而不是viewController,所以这里要填进去的是popupView.view而不是popupView本身。

第二个参数showType,用来确定弹层的显示方式,也就是怎样弹出来,这里可以选择很多方式:

  • KLCPopupShowTypeBounceIn(FromBottom/Left/Right/Top):从底部/左边/右边/上面弹出
  • KLCPopupShowTypeSlideIn(FromBottom/Left/Right/Top):从底部/左边/右边/上面滑出
  • KLCPopupShowTypeFadeIn:淡出
  • KLCPopupShowTypeGrowIn:渐变出
  • KLCPopupShowTypeShrinkIn:缩放出

第三个参数dismissType是选择弹层的退出方式,也就是怎样弹出去,这里同样有很多种方式,跟show的参数都是一一对应的,把In换成Out就是弹出的参数了。

第四个参数maskType,这个参数是决定弹层底部界面的样式,也就是说,当你从一个界面点出弹层时,原来那个界面会在弹层的下方,而这个参数就可以让你决定下方那个界面是什么样子,比如变模糊。这里参数KLCPopupMaskTypeDimmed和KLCPopupMaskTypeClear就是决定是否变得模糊。

第五个参数dismissOnBackgroundTouch,参数是布尔型的,决定当你点击下方界面时,也就是点击弹层界面以外的部分时,是否退出弹层。

第六个参数dismissOnContentTouch,同样是布尔型,决定当点击弹层本身时,是否退出弹层。

创建弹层的过程到这里就结束了,基本上要显示什么,怎么出现怎么退出,什么时候退出都已经决定好了,接下来显示弹层就好了:

代码语言:javascript复制
[popupView show];  

这样就可以显示刚才创建好的弹层了。弹层出现后,除了刚才设定的点击背景或弹层本身时退出弹层外,也可以设定在其他时候退出,比如点击弹层上的一个按钮时调用方法退出,只要在点击按钮时运行:

代码语言:javascript复制
[popupView dismiss:YES];  

就可以了,这两种是最简单的显示和退出弹层,制作者还提供了其他的显示和退出方式:

show:

代码语言:javascript复制
- (void)showWithLayout:(KLCPopupLayout)layout;  
- (void)showAtCenter:(CGPoint)center inView:(UIView*)view;  
- (void)showWithDuration:(NSTimeInterval)duration;  

dismiss:

代码语言:javascript复制
- (void)dismiss:(BOOL)animated;  
  (void)dismissAllPopups;  
- (void)dismissPresentingPopup; // UIView category  

这些我还没用过,有机会使用后再来说明吧,具体的可以在上面的github原地址中查看。

0 人点赞