列表“暂无更多内容”布局两种思路
2016-07-05 20:33
148 查看
我是iOS开发,经常使用UITableView布局界面。常伴随上拉刷新,下拉加载更多功能。当数据加载完毕后,要显示“暂无更多内容”提示用户。
第一种思路是,需求中列表没有header 浮层或只有一个分区且没有header或footer时,可将UITableView的类型设置为group,将“暂无更多内容”用footer布局来实现。这一做法很简单,只要将“暂无更多内容”的显示和隐藏逻辑写好,任凭如何测试不会出错。
此处需要注意的是,当不显示“暂无更多内容”时,UITableView得到footer的代理方法中,返回nil。得到footer高度的代理方法中,返回0.1,目的是让footer很小,但高度不能返回0。这个在代码中试了就知道了。
第二种思路是,需求中列表有header浮层,设置UITableView的类型设置为plain,此刻不能在使用footer或header布局“暂无更多内容”了,因为header 和footer都会漂浮。需要另辟思路了。我曾想借鉴下拉加载的显示逻辑(监听scrollDidScroll方法,时刻对比着contentSize , contentOffset和table.frame,size.height的值,来修改下拉加载的frame)显示“暂无更多内容”,但是,工程中下拉加载类没有暴露frame(工程中不止一处需要下拉加载,此处若根据自己需要修改,不太合适),我需要再次计算来修改“暂无更多内容”的frame来显示。自我评估此后,放弃此思路。另辟新径。
新径为,我将“暂无更多内容”,用一个cell布局。根据“暂无更多内容”的显示隐藏条件,在UITableView的代理方法中加入判断逻辑。同样很完美的将“暂无更多内容”实现了。相比较着用计算的方式,通过修改frame来显示,倒不如,我通过简单的判断逻辑告诉UITableView是否显示“暂无更多内容”的cell,来的可靠。
我是iOS开发,以上是我的两种布局思路,抛砖引玉,希望能够有所帮助。
第一种思路是,需求中列表没有header 浮层或只有一个分区且没有header或footer时,可将UITableView的类型设置为group,将“暂无更多内容”用footer布局来实现。这一做法很简单,只要将“暂无更多内容”的显示和隐藏逻辑写好,任凭如何测试不会出错。
此处需要注意的是,当不显示“暂无更多内容”时,UITableView得到footer的代理方法中,返回nil。得到footer高度的代理方法中,返回0.1,目的是让footer很小,但高度不能返回0。这个在代码中试了就知道了。
第二种思路是,需求中列表有header浮层,设置UITableView的类型设置为plain,此刻不能在使用footer或header布局“暂无更多内容”了,因为header 和footer都会漂浮。需要另辟思路了。我曾想借鉴下拉加载的显示逻辑(监听scrollDidScroll方法,时刻对比着contentSize , contentOffset和table.frame,size.height的值,来修改下拉加载的frame)显示“暂无更多内容”,但是,工程中下拉加载类没有暴露frame(工程中不止一处需要下拉加载,此处若根据自己需要修改,不太合适),我需要再次计算来修改“暂无更多内容”的frame来显示。自我评估此后,放弃此思路。另辟新径。
新径为,我将“暂无更多内容”,用一个cell布局。根据“暂无更多内容”的显示隐藏条件,在UITableView的代理方法中加入判断逻辑。同样很完美的将“暂无更多内容”实现了。相比较着用计算的方式,通过修改frame来显示,倒不如,我通过简单的判断逻辑告诉UITableView是否显示“暂无更多内容”的cell,来的可靠。
我是iOS开发,以上是我的两种布局思路,抛砖引玉,希望能够有所帮助。
相关文章推荐
- Linux网络配置文件常见配置项内容解析
- shell脚本:日志切割与上传
- Python--内存管理
- 2、使用Myeclipse 10 开发一个 WebService 应用
- scala 基本语法-ok
- Windows 8的语音识别
- 26. Remove Duplicates from Sorted Array
- 递归遍历文件
- 1000.A-B
- VectorDrawable.java运行异常
- git(5) windows下 pycharm + git(github) ,在本地方便管理
- (5) 百度2011研发工程师笔试卷
- C++面试小结
- tyvj p1305 最大自序和
- 单例模式
- sublime中使用ctags(详解)
- 简明 Vim 练级攻略
- 1746. DreamingAboutCarrots
- dd-wrt 定时重连 pppoe 更换ip地址
- Unity3D LOD Group