UIView+PlaceholderView介绍

经常需要处理这种占位图业务 (无网 UFO 无数据 NoData)
UIView+PlaceholderView 尝试用一行代码更优雅的去处理列表中的占位图业务问题


UIView+PlaceholderView 可以提供给你
1、 使用链式语法,一行代码创建完成
2、采用 ph. 命名空间,比如 RxSwift 的 rx.,SnapKit 的 snp. 有效避免项目中命名冲突
3、采用extension方式实现,实现代码解耦


总结了一下,现阶段我们项目中占位图分一下几种

  • 无网/弱网 占位图
  • 空数据 占位图
  • 自定义 占位图

场景组合

UIView+PlaceholderView 支持一下场景: 场景 1 弱网无网 场景2
A 空数据
B 空数据 + 自定义(修改页面元素)
场景3

C 自定义(修改页面元素)

自定义显示: 自定义类型 页面元素 根绝传入是否有值来控制改元素是否显示 ,不传不显示


页面元素构成

无网/弱网 占位图 

UI组件元素元素名称默认值修改默认值显示
UIViewplaceholderViewUIColor.white不允许true
UIImageViewimageViewUIImage(named: “NetWorkFailed”)不允许true
UILabellabel网络无法连接,请稍后再试不允许true
UIButtonbtn请点击刷新不允许true

空数据 占位图 

UI组件元素元素名称默认值修改默认值显示
UIViewplaceholderViewUIColor.white不允许true
UIImageViewimageViewUIImage(named:”ReservationList_NoData”)允许true
UILabellabel暂时没有数据允许true
UIButtonbtn快去看看吧允许true

自定义 占位图 

UI组件元素元素名称默认值修改默认值显示
UIViewplaceholderViewUIColor.white不允许true
UIImageViewimageView允许true/false
UILabellabel允许true/false
UIButtonbtn允许true/false

代码示例 + 效果展示

展示 无网/弱网 占位图

self.tableView.ph.showPlaceholderView {
    /// Do Someting Code ...
    /// eg: 重新发起请求
 }


展示 空数据 占位图,传入 noData 类型

self.tableView.ph.showPlaceholderView(.noData, handler: {
    /// Do Someting Code ...
})


以上是最常用的 2种 占位图显示UI,下面介绍一下应对特殊需求,需要自定义元素的占位图


空数据占位图 + 修改标签

 self.tableView.ph.title("你可以自定义提醒").showPlaceholderView(.noData, handler: {
      /// Do Someting Code ...
})


空数据占位图 + 修改标签和按钮

self.tableView.ph.title("你可以自定义提醒").btnTitle("按钮提醒").showPlaceholderView(.noData, handler: {
     /// Do Someting Code ...
 })


自定义占位图 风格一

self.tableView.ph.title("按钮不设置title不显示").showPlaceholderView(.custom)


自定义占位图 风格二

self.tableView.ph.title("自定义标题").btnTitle("图片不设置不显示").showPlaceholderView(.custom, handler:{
     /// Do Someting Code ...
 })

以上示例都可以替换image元素,不在举例了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值