您的位置:首页 > 其它

列表“暂无更多内容”布局两种思路

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开发,以上是我的两种布局思路,抛砖引玉,希望能够有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: