仿照写(类网易新闻,什么值得买)界面结构的思考

请支持原创, 如需转载, 请注明出处@TEASON

之前的文章里有说要写关于UITableView见解的两篇, 上一篇在这里, 这是下集.

下面的图是网易新闻客户端, 这种结构的首页挺多的, 我仿照写了一下, 总结了下思路, 要实现不是特别困难, 不过有一些细节和问题我觉得有必要注意.


wangyi.png

下面是我认为需要注意的地方 .

1.首先, 他是由什么控件组成的 ?
上下两个scrollView, 上面那个控制标签, 下面控制内容, 互相对应切换.
2.如何重用contentView
如果是scrollview, 他里面的内容视图(contentView)要考虑重用, 不然极度浪费内存 .
可能有两种可行的解决方案:
方案(1)外部是scrollView,内容用三个tableView来回切换内容对应显示. 这个思路和这个demo(无限循环scrollview)一样一样, 他的优势是可以做成无限循环, 能从最后一张切换到第一张 .
方案(2)用collectionView实现contentView重用. 每一个contentView作为一个collectionViewCell. collectionViewscrollview的子类,所以和第一条不矛盾, 能否通过继承layout实现这种表现.
3.分离tableview表示逻辑
这在我的一篇文章中提及, 不过这次我没有用block再回调回ctrller里, 这样比较适合这个项目, 方便让每个handler控制一个tableview的表示逻辑. 分工比较明确.
于是, 在框架出来之后, 只需要传入handlerList即可.


demo地址在此
demo由于我是用方案一写的, 精力在自己写重用tableView上用了好多.不过demo里主要功能和思路都有所体现了 . 欢迎follow我
关于方案二的版本重写collectionViewLayout , 写起来省事很多, 这个布局甚至能用storyboard直接0行代码弄出来布局, 实现起来相当容易,demo就不贴了. 但方案二不能循环. 方案一实现相对比较难, 而且主要是手动实现了view的重用和循环. 故给出方案一 .
此外, 用UIPageViewController也可以解决,应该是方案三.做起来也比较简单.
但. 我认为无论是哪一种方案. 都应该考虑controller过多内存紧张的处理. 我认为是用缓存做是最好的. 其实无论哪一种方案, 重要的是思考过程, 如果急于求成, 类似的框架网上随便找找一大堆, 但是不思考纯粹贴过来就没有意义了. 是不是?


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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,251评论 4 61
  • 2014.10.6 晴 你好。不知道从什么开始,我变得不擅长用书信的形式与人交流。这个信也许会写的乱七八糟,词不...
    耳咚贰号阅读 560评论 0 5
  • 时光的年轮悄悄前进,我已走过自己生命历程的三分之一,经过了懵懂无知的少儿时代,迈过了紧张充实的学生时代,来到...
    肉肉的小饼干阅读 191评论 0 1
  • 罪行只有一种,那就是盗窃。当你杀害一个人,你偷走一条生命,你偷走他妻子身为人妇的权利,夺走他子女享受父爱的权利;当...
    盏栈阅读 720评论 0 0
  • 比喻是人类表达的初级阶段,真的相爱的人不语,一鳖便知对方所想,智者面对,相识而笑,比喻是不得已. 我们古代常说天机...
    力拔山兮气盖次阅读 208评论 0 0