(全新升级)LSTPopView 简易的iOS万能弹框

LSTPopView 万能弹窗,功能强大,易于拓展,性能优化和内存控制让其运行更加的流畅和稳健, LSTPopView的出现,可以让我们更专注弹窗页面的布局. 省心省力 ! 提高开发效率 !

前言

  • 考虑到笔者的精力问题,遇到问题请先查看 API、效仿Demo、阅读README、搜索 Issues。如果是BUG 或 Feature,最好是提Issue
  • 联系方式: LoSenTrad@163.com, QQ群:1045568246, 微信:a_LSTKit
  • 开发环境: Xcode12.3, iOS13.5, iPhone XS Max

博客地址

目录

特性

  • 提供丰富的api,高度自定义弹窗,简单入手使用
  • 支持弹出动画,消失动画,主动动画等多重动画搭配
  • 支持点击,长按,拖拽,横扫手势交互
  • 支持多弹窗管理:编队,堆叠,优先级等
  • 支持指定弹窗父类,eg: UIWindow,self.view等
  • 安全且内存占用小,弹窗内存自动回收
  • 提供生命周期api,自定义动画控制
  • 自动规避键盘,防止被键盘遮挡
  • 支持定时器,多定时器机制
  • 支持纯代码/xib页面
  • 支持横竖屏切换
  • 支持多代理机制
  • 支持二次封装,比如组件LSTHUD,LSTAlertView等

版本更新历史

安装

  • OC版本安装

    • CocoaPods安装: 在podfile文件中添加以下描述,然后 pod install 或者 pod update

      pod 'LSTPopView'
      
    • Carthage安装:(暂时未适配)

  • Swift版本安装

    • (计划开发中)
  • 手动导入集成

    • 1.拖动LSTPopView文件下5个文件到项目中
    LSTPopView.h
    LSTPopView.m
    UIView+LSTPV.h
    UIView+LSTPV.m
    LSTPopViewProtocol.h
    
    pod 'LSTTimer'
    

基本使用

  • 代码示例

    //自定义view
    LSTPopViewTVView *customView = [[LSTPopViewTVView alloc] initWithFrame:CGRectMake(0, 0, 300,400)];
    //创建弹窗PopViiew 指定父容器self.view, 不指定默认是app window
    LSTPopView *popView = [LSTPopView initWithCustomView:customView
                                              parentView:self.view
                                                popStyle:LSTPopStyleSmoothFromBottom
                                            dismissStyle:LSTDismissStyleSmoothToBottom];
    //弹窗位置: 居中 贴顶 贴左 贴底 贴右 
    popView.hemStyle = LSTHemStyleBottom;
    LSTPopViewWK(popView)
    //点击背景触发
    popView.bgClickBlock = ^{ [wk_popView dismiss]; };
    //弹窗显示
    [popView pop];
    
  • 调试日志

    /** 调试日志类型 */
    typedef NS_ENUM(NSInteger, LSTPopViewLogStyle) {
    LSTPopViewLogStyleNO = 0,          // 关闭调试信息(窗口和控制台日志输出)
    LSTPopViewLogStyleWindow,          // 开启左上角小窗
    LSTPopViewLogStyleConsole,         // 开启控制台日志输出
    LSTPopViewLogStyleALL              // 开启小窗和控制台日志
    };
    
    • 调试小窗: S表示当前已经显示的弹窗数, R表示在移除队列的弹窗, S+R是表示当前所有的弹窗数

使用注意事项

(一定用weak修饰)

  • 解析: LSTPopView对每个弹窗都有自动内存销毁机制, 外部对弹窗的强引用会打破这种自动内存销毁机制, 比如成员变量用strong修饰,否则弹窗不能自动销毁,导致内存回收不了.

  • 类成员变量使用规范:

    //成员变量用weak修饰, 不可以用strong修饰
    @property (nonatomic,weak) LSTPopView *popView;
    
  • 成员变量的创建

    LSTPopViewTVView *customView = [[LSTPopViewTVView alloc] initWithFrame:CGRectMake(0, 0, 300,400)];
    //弹窗实例创建
    LSTPopView *popView = [LSTPopView initWithCustomView:customView
                                                  popStyle:LSTPopStyleSmoothFromBottom
                                              dismissStyle:LSTDismissStyleSmoothToBottom];
    //这里赋值给成员变量self.popView
    self.popView = popView;
    [popView pop];
    
  • 错误使用:

    //直接赋值给成员变量 导致成员变量为空, 请参考以上使用规范
    self.popView = [LSTPopView initWithCustomView:customView
                                           popStyle:LSTPopStyleSmoothFromBottom
                                       dismissStyle:LSTDismissStyleSmoothToBottom];
    

演示效果

  • 应用市场常用的示例场景
QQ,微信,UC,微博,抖音
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/base_demo.gif" width = "200" height = "424" alt="图片名称" align=center />
拖拽移除,横扫移除
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/drag_sweep.gif" width = "200" height = "424" alt="图片名称" align=center />
  • 丰富的出入场动画, 拖拽, 横扫动画
弹出动画,中间,自上,自左,自下,自左
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/pop.gif" width = "200" height = "424" alt="图片名称" align=center />
移除动画,中间,至上,至左,至下,至左
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/dismiss.gif" width = "200" height = "424" alt="图片名称" align=center />
拖拽,横扫动画
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/dragSweep.gif" width = "200" height = "424" alt="图片名称" align=center />
  • 弹窗位置
弹窗位置,中间,贴顶,贴左,贴底,贴右
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/hem_Style.gif" width = "200" height = "424" alt="图片名称" align=center />
X轴,Y轴调教,宽度和高度调教
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/x_y_w_h.gif" width = "200" height = "424" alt="图片名称" align=center />
  • 自动规避键盘遮挡,指定容器,定时器
自动规避键盘遮挡
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/keyboard.gif" width = "200" height = "424" alt="图片名称" align=center />
指定容器弹出
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/LSTPopView/%E6%8C%87%E5%AE%9A%E5%AE%B9%E5%99%A8.gif" width = "200" height = "424" alt="图片名称" align=center />
弹窗计时
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/LSTPopView/%E8%AE%A1%E6%97%B6%E5%99%A8.gif" width = "200" height = "424" alt="图片名称" align=center />
  • 多弹窗管理(优先级,编队)
app启动多弹窗优先级显示
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/uPic/launch.gif" width = "200" height = "424" alt="图片名称" align=center />
多窗口编队使用
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/LSTPopView/%E7%AA%97%E5%8F%A3%E7%BC%96%E9%98%9F%E7%9A%84%E4%BD%BF%E7%94%A8.gif" width = "200" height = "424" alt="图片名称" align=center />
  • 支持横竖屏
屏幕旋转
<img src="https://raw.githubusercontent.com/5208171/LSTBlog/master/LSTPopView/%E5%B1%8F%E5%B9%95%E6%97%8B%E8%BD%AC.gif" width = "500" height = "500" alt="图片名称" align=center />

作者

LoSenTrad@163.com, QQ群:1045568246, 微信:a_LSTKit

版权

尊重劳动成果, 人人有责.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容

  • 本周活动组织到天河龙洞山庄,目的是为了庆祝电商在双十一创造了佳绩,另一方面是为了促进各个部门之间的感情,同时也让新...
    遇见芬芳阅读 360评论 0 0
  • 天之旅的每篇日记都有“我是日记星球241号星宝宝王益军,我正在参加日记星球第五期蜕变之旅,这是我的第8篇原创日记。...
    王益军阅读 143评论 0 0
  • 2017 11月1日 星期三 晴 下午放学去接闺女上英语辅导班,我送去闺女就回家做饭了,因为英语辅导班离我家...
    贾海露妈妈阅读 315评论 0 1