常用类tabBarController的实现(今日头条架构)

上次简单的tabBarConroller底层原理实现是比较简单的,然后常用类似tabBarController的是今日头条那种的自定义控制器.

其实那种视图在熟悉tabBarController的底层实现后,进行扩展还是很简单的;

一:首先将上一篇的containView换成collectionView

注意设置collectionView的一些布局属性

二:设置数据源方法


这就可以利用collectionView的属性,完成多个view展示的离屏渲染问题,而且不用自己去添加全屏滑动切换的功能,一举两得,最终实现效果如下图.

在图下面,我会把按钮下划线的代码和动画还有,这种效果控制器的一些注意点

三:按钮下划线(按需求)和一些细节`注意点

对于前缀忽略,我的母校前面缩写,以后改为自己名字

前半段和上一篇一样


下划线效果

关于动画效果就是最简单的UIView动画,就不贴了,上传图片太容易失败了,还有就是按钮点击的方法需要添加代码:(下次去了解贴代码块再写文章,方便彼此)

// 2.滚动到对应位置

CGFloatoffsetX = i *HHScreenW;

self.bottomContainerView.contentOffset=CGPointMake(offsetX,0);

上面代码是点击按钮标题的时候,切换控制器的逻辑,很简单吧..(全部,视频等是我这次改掉子控制器title的)

细节优化:

添加按钮(子控制器标题)的方法,放在控制器的viewWillAppear里面调用

解释:如果你只写一次无所谓放在哪,只需要放在添加子控制器后面即可;

但是如果你想封装一下,留给以后相似结构的控制器继承要注意写在viewWillAppera里面,其实UITabBarController也是将tabbaritem写在这个方法里面的.

如果封装的话:

添加按钮(子控制器标题)的方法,放在控制器的viewWillAppear里面要保证制调用一次,不然会重复添加

解决方案:我建议在控制器写一个BOOL的属性记录一下即可,在viewWillAppear里面判断一下即可.

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,257评论 4 61
  • 转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 UI下拉刷新模糊效果A...
    袁俊亮技术博客阅读 11,975评论 9 105
  • 今天周老师不在校园第二天,我今天来早上来到教室,已经听到同学们,在朗读英语的声音了,我进来把书包赶紧收拾好,把英语...
    谷松林阅读 183评论 0 0
  • hadoop是 apache lucene 创始人Doug Cutting 创建的Hadoop起源于开源的网络搜索...
    经纶先生阅读 985评论 0 2
  • 姓名:王晓妹 烟台倍生商贸有限公司 日精进打卡第24天 【打卡始于2017.10.12,持续于2017.11.4】...
    王晓妹123阅读 203评论 0 0