Scrollview,tableview你真的会用吗?

ScrollView使用的时机,什么时候tableview或集合视图是更加适合的呢?
scrollView 是可以使得你的内容可以滚动的视图,水平和垂直方向都可以。而表视图和集合视图事实上也是滚动视图,因为他们都是UIScrollView的子类,但是什么时候使用前者,什么时候使用后者呢?
简单说来,当你有一个重复的条款的滚动列表时表视图和集合视图应该在任何时候使用。表视图用于垂直列表,集合视图在表视图的容量上进行了扩展,增加了水平滑动,栅格和更加复杂的布局。在表视图或集合视图内的选项经常是同一类型但是也可以是不同类型。表示图和集合视图也提供了在区域内使用群组选项的能力。表视图和集合视图都遵循相同的原则。
为什么选择表视图去代替使用滚动视图呢?有不同的原因
1,如果你用滚动视图,你必须计算每个选项的位置,即使你用自动布局。这产生了大量的引用代码,因此苹果公司创造了表视图去减少这样的代码
2,如果你想增加,插入,删除或重新整理,你就需要自己写甚至更多的代码。表示图免费提供了这个功能。
3,一个内置标准的滚动视图的视图一直在内存中保持着,当选项的列表增长时,这就成了一个问题,经常出事。当你有很多的视图时,内存很快填满。并且当一个应用占用很多内存时,它会被系统终止。此外,这些视图在视图层次中停留。当滚动是,它们的位置直接得到重新计算。一个表示图解决了这些问题,因为它重用了视图,因此它在给定的时间内需要很少内存。
对于这些原因,每次你需要陈列选项列表,一个表视图是你最佳选择。当然滚动视图也仍然对于一些事件而言是有用的。例如:
当你有一个UI没有匹配在屏幕上,但是它不是同类的选项列表
当你想要不同的方向滚动或缩放在更广的区域去展示,像图片或者一个地图。

表视图是如何工作的呢

1,首先表视图用称之为单元格的视图去显示它的选项。一个表视图的cell是UITableViewCell的子类,它们通过表视图垂直排布。当滚动引起一个cell出了屏幕时,表视图重用它去显示新的选项。以这样的方式仅仅有少量的cell同时在屏幕上和内存中。
这所有的都被表视图完成,不需要任何特别的计算在你的其他部分上。所有你必须做的就是重新配置重用的cell去显示一个新的选项。
表视图中的cell都通过原型的cell去生成,因此它们是相似的。一个表视图可以用多于一个原型的cell,如果它需要展示多于一类的元素时。例如,你做了一个社交网络的app-能发表文本帖子,图片或视频,一个表视图对于选项的这些类型的每一个都有一个原型。它或许是直觉,对于表视图工作,你需要用所有元素的列表去配置它,但是为了消除在内存中保留所有的选项,表视图工作是不同的,所有你要做的就是告诉表视图总共有多少选项-从开始就没有提供它们。这个表视图在二个额外的对象上回应,当必要时它会问cell要显示在屏幕的信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 翻译自“Collection View Programming Guide for iOS” 0 关于iOS集合视...
    lakerszhy阅读 3,926评论 1 22
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,251评论 4 61
  • 晚安,今日小酌,微醺,找一个夜聊,无人叙,作罢作罢,入眠安寝。
    禾必阅读 134评论 0 1
  • 茜茜坐在我一米开外的椅子上,问,M领导的父亲去世,你随礼了没有。我说,随了。 其实,如果单纯是M领导的家事,我也懒...
    绿萝宝贝阅读 628评论 5 5
  • 这一来二去,两人便相熟起来。时光骤势转眼已是梅雨,她上山去采药,突来的大雨把她淋个湿透,他冒雨前来,把伞举在她的头...
    三十八号技师阅读 379评论 0 0