美文网首页ios新建专题控件封装
仿照写(类网易新闻,什么值得买)界面结构的思考

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

作者: TEASON | 来源:发表于2016-01-12 16:49 被阅读2148次

请支持原创, 如需转载, 请注明出处@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

相关文章

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

    请支持原创, 如需转载, 请注明出处@TEASON 之前的文章里有说要写关于UITableView见解的两篇, 上...

  • Android实战:仿网易新闻app--简介

    最近写了一个简单的新闻app客户端,仿网易新闻的,实时获取网易新闻客户端的数据。话不多说,先上图。 项目结构 项目...

  • 仿网易新闻首页UI布局

    title : 仿网易新闻首页UI布局category : UI 仿网易新闻首页UI布局 标签(空格分隔): UI...

  • 仿MONO界面(类似网易新闻导航栏)

    点击上面的菜单栏,下面会跳转到相应的界面。滑动下面的界面,上面的菜单栏也会跟着变化。 思路: 头部是一个Scro...

  • React Native学习之组件Text

    Demo展示 今天通过仿网易新闻列表展示来学习Text组件,效果图如下: 整个界面的布局的非常简单,分为上、中、下...

  • 仿网易新闻架构

    头部标题选择,切换控制器WechatIMG1.jpeg 实现思路 类似于tabbar 首先添加子控制器 添加标题选...

  • 自己看的github

    1.ARKit 太阳系 2.仿网易新闻

  • iOS 一些第三方资料

    一:源代码实例一个针对iOS模块化开发的解决方案 快速搭建项目源代码 模仿网易新闻做的精仿网易新闻 支付宝高仿版 ...

  • iOS比较常用的第三方及实例

    一:源代码实例 一个针对iOS模块化开发的解决方案 快速搭建项目源代码 模仿网易新闻做的精仿网易新闻 支付宝高仿版...

  • IOS

    一:源代码实例 一个针对iOS模块化开发的解决方案 快速搭建项目源代码 模仿网易新闻做的精仿网易新闻 支付宝高仿版...

网友评论

  • Hesse_Huang:学习了
  • TEASON:此文已更新完结 :smile:
  • MarkLin:楼主为何不考虑一下pageViewController
    TEASON:@MarkLin
    谢谢你的好提议!
    已经实现了一个. 非常简单. 可以说是最简单的做法.
    不过无论哪一种, 都要考虑 controller list 的缓存.
    最近也在别人的做法. WMPageController 不错.
  • __Jason__:cell 对应的点击事件怎么实现?怎么跳转到下一级页面?急!!!
  • f68bcb6da716:我之前仿写的时候 用的是 scrollView + pageViewController 界面比较难复用,不过实现起来比较简单
  • 溪枫狼:我前几天封装了上面的滑动导航条,demo里也实现你这种类似的界面。关于下面的界面,暂时有三种思路,1.Scrollview+VC 2.CollectionView+VC 3.横的tableView及cell+VC,每个界面对应一个控制器,方便页面跳转。第一种缺点是难复用,下面界面少时适合用 ,第二种恰恰自带复用,少多皆宜,第三种比较麻烦(看别人这么用,tableView和cell都要旋转) 。想仿简书的那个界面,但是看上去只有三个界面用于左右滚动,暂时还没有清晰的思路。https://github.com/XiFengLang/JPSlideBar
    TEASON:@溪枫狼 我记得以前用过横过来的tableView, 那还是在没有collectionView之前我用的, 在有了collectionView之后,就不用了, 实现起来转两次, 坐标颠倒有点小麻烦

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

本文链接:https://www.haomeiwen.com/subject/qrhckttx.html