美文网首页iOS精品文章
常用类tabBarController的实现(今日头条架构)

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

作者: 若素Smile | 来源:发表于2017-04-03 00:19 被阅读58次

上次简单的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里面判断一下即可.

相关文章

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

    上次简单的tabBarConroller底层原理实现是比较简单的,然后常用类似tabBarController的是...

  • 当前UIScrollView滚动到顶

    实现步骤:(前提是使用纯代码实现Navigation和tabBarController) 创建类 .h文件 .m文...

  • 常见app架子

    一个常见app的框架, 实现一些常用功能 TabBarController + NavigationBarCont...

  • 仿今日头条项目架构

    仿今日头条项目架构 (一)—— ios11导航栏和tabBar层级仿今日头条项目架构 (二)—— 项目主架构的搭建...

  • 大数据方向,存储等、

    【今日头条】深圳研发中心基础架构招聘信息(动态更新) 头条简介 “今日头条”是一款基于数据挖掘的推荐引擎产品,是国...

  • 设计狮体验报告——今日头条

    经常用手机看新闻的人们肯定听说的一个APP,它的名字就叫——今日头条。区别于普通阅读类应用的个性化推荐模式,今日头...

  • 今日头条的屏幕适配类

    今日头条的屏幕适配类原文链接

  • 基础:集合类

    集合类的继承关系 常用的几个实现类HashSet:没有排序的Set实现类,平时可以使用 TreeSet:实现类So...

  • PathMachingResourcePatternResolv

    spring 资源抽象接口下的几个常用实现类实现类 说明ClassPathResource 类路径下的资源,资...

  • 集合类的相关总结(二)

    上一篇我们说完了List类和其一些常用的子实现类,这篇我们说下Set类和其常用的子实现类;集合类的相关总结(一) ...

网友评论

  • e4d68e138206:比较好,一劳永逸呀
    若素Smile:这种常用架构使用场景确实蛮多的,封装一下可以省去很多时间,封装注意点主要就是将添加子控制器标题的方法放在viewWillAppera里面和把添加子控制器放在外面:smile:

本文标题:常用类tabBarController的实现(今日头条架构)

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