为什么要基于UITableview构建UI

实在吃过太多页面设计的亏,所以总结一下基于UITableview构建UI的一些好处。

  1. UITableview是数据驱动的,根据内置的机制做展现。修改dataSource就可以控制界面的展现。刷新界面时只需要使用reloadDatareloadRowsAtIndexPaths就能完成。

  2. 页面扩展能力佳。未来业务发展,需要在页面最上面最下面增加内容,对之前代码做少量修改就能做到。

  3. 大量实现下拉刷新功能的开源项目,如果页面需要刷新功能,轻松做到。

  4. UITableview具有强大的表现能力,再复杂的页面都可以完成。

  5. UITableview使得交互更加统一,所有的页面,不管内容多少,都可以scroll和bounce,符合iOS的交互习惯。可以参看iOS自带的App的交互。

  6. UITableView隐藏着很多高级特性(继承自UIScrollView),比如automaticallyAdjustsScrollViewInsets让内容可以滚动到导航栏和tabbar的后面,配合磨砂效果,视觉效果非常赞;比如点击状态栏会滚动到顶部;这些特性不需要开发就与生俱来。

  7. iOS 8新增Self Sizing Cell,只需要设置rowHeight为UITableViewAutomaticDimension就可以实现cell高度根据约束自动调整(务必设置top和bottom与contentView的约束),cell高度计算和缓存已经成为历史往事。

  8. 滚动到页面指定的位置非常方便。并且通过保存UITableview的contentOffset,可以记住页面滚动的位置,当用户进入相同的页面,滚动到之前的位置。

  9. contentOffset妙用无穷。比如点击UITextField编辑时让其往上滚动一点,避免被升起来的键盘遮挡,只要scroll一下便可做到。有些页面只需将UITableView的keyboardDismissMode设置成interactive,轻松拥有MessageApp那样灵动的交互。

  10. 尤其适合写Hotpatch,因为UITableView从渲染到点击都有非常标准的接口,通过对这些接口做patch,可以解决各种各样的问题。即使是Swift App,因为UIKit还是OC写的,使用JSPatch一点问题都没有。

你可能感兴趣的:(为什么要基于UITableview构建UI)