之前一直使用DZNEmptyDataSet,来处理TableView的数据为空的情况,一直很不错。
但今天却遇到一个问题:
当TableView的headerView非常大,超过设备本身的高度的时候,DZNEmptyDataSet显示不正确。
查阅了DZNEmptyDataSet源码,发现在布局上,他是向UITableView添加了一个DZNEmptyDataSetView的子视图,但这个视图的Frame被设计为CGRectMake(0,0,屏幕宽度,屏幕高度)。因此当headerView高度超过设备本身的高度的时候,这个DZNEmptyDataSetView完全被headerView覆盖了。
考虑DZNEmptyDataSetView的Frame是否可以根据headerView的高度进行相应的扩展?思考之后这个方案还是被否决了。因为此时TableView的ContentSize除了headerView,没有多余的留白了。
目前替换方案是使用SectionFooterView,当TableView的数据为空时,用SectionFooterView展示数据为空的提示。
SectionFooterView和TableFooterView的比较:从语义上,SectionFooterView更为符合,因为空数据提示和cell关系更为密切,有cell的有无来决定。
网友评论