美文网首页
Swift斗鱼直播--首页处理TitleView和Content

Swift斗鱼直播--首页处理TitleView和Content

作者: 喵鸢 | 来源:发表于2017-03-13 03:14 被阅读219次

优化

  • 问题1:contentView中定义了一个parentVC对其是个强引用;与HomeVC对contentView是强引用,会造成循环引用,会造成无法销毁,
    • 方法,将其中一个改成weak,但是必须是可选类型
  • 问题2:闭包中使用self,最后使用weak,否则也会有循环引用
    • [weak self]in

1.PageTitleView中点击

  • 1️⃣titleView中逻辑处理:按钮选中状态,滑块移动
  • 2️⃣告诉contentView滚动到对应控制器界面

步骤

  • 1️⃣给label添加点击手势
    • extension监听点击的方法
      • 1.获取当前label --- 手势.view转换label
      • 2.获取之前的label --- 定义属性保存,默认是0
      • 3.切换文字的颜色
      • 4.保存最新label下标值
      • 5.滚动条滚动到最新label下
      • 6.对应contentView也要滚动 --- 注意:titleView和contentView是两个独立的UIView,他们产生关系的位置是HomeVC中,只能讲titleView的滚动消息告诉HomeVC,让HomeVC告诉contentView需要滚动 ------ 闭包 通知 代理

关于代理

  • 协议后面要加上class,只能被类遵守,防止其他类型也可以使用就无法将协议中的属性定义成可选类型

2.处理contentView的滚动

  • 1️⃣如何监听滚动?collectionView的代理
    • 在滚动的时候(代理方法中)需要获取的数据
      • a.progress滚动进度
      • b.sourceIndex(原来标题下标)
      • c.targetIndex(目标滚动标题下标)
    • 思路
      • a.判断左滑or右滑
        • 代理方法:开始滚动时
      • b.将数据通过代理传到titleView
        • 1.取出sourceLabel和targetLabel
        • 2.处理滑动条逻辑
        • 3.颜色渐变
          • 定义宏
          • 将之前创建时用UIColor的部分改成宏
      • c.点击title而不是挪动下面的contentView的时候,会调用titleView中的代理方法,进而通知contentView的代理方法去计算offset等数据再传递给titleView进行label的设置,其实是多余的,点击title时应该直接改变label颜色 而不需要计算offset!
        • 定义一个布尔值isForbidScrollDelegate,判断当前是否是titleView的点击
          - 初始化值为false
          - 如果是true在pageContentView的scrollView代理方法中直接return
          - pageContentView中对外(除本类)提供了一个设置对应currentIndex的方法(根据传入的index设置当前pageContentView);若对外使用该方法,则isForbidScrollDelegate = true (应该直接设置,而并非需要contentView计算)
      • d.bug:滑动后在点击其他label两个都会是橘色
        • 在TitleView中,根据contentView设置label之后,要记录已经最新的label下标值

相关文章

  • Swift斗鱼直播--首页处理TitleView和Content

    优化 问题1:contentView中定义了一个parentVC对其是个强引用;与HomeVC对contentVi...

  • Swift斗鱼直播--首页TitleView与ContentVi

    首页PageTitleView 效果:首页最上方有一个和屏幕等宽的标题栏,点击的时候,可以切换到不同界面.类似于T...

  • swift仿斗鱼首页

    一,swift仿斗鱼首页 1,首页的效果图 2, 项目地址

  • Swift斗鱼直播--首页导航及布局分析

    首页的部分 首页导航栏 导航栏左侧 点击图片时若有一闪一闪效果,则使用//点击图片时有一闪的功能两种方式//方式一...

  • 来自北欧风情的冰淇淋品牌——"NOBIBI梦幻冰淇淋"!

    如果对斗鱼直播平台有过深度了解的人,一定或多或少的看过我的美食体验直播,作为曾经几度登顶斗鱼直播首页的美食大V,凭...

  • 2016.10.25

    斗鱼pc端的大多数老用户打开斗鱼时,很可能跳过“首页”而直接进的“直播”版块页面,所以会看不到首页的新闻公告。为了...

  • 斗鱼

    斗鱼tv是一家弹幕式直播分享网站,为用户提供视频直播和赛事直播服务。斗鱼tv的前身为AXFUN生放送直播,...

  • 听斗鱼CEO谈创业经历

    斗鱼TV是一家弹幕式直播分享网站,为用户提供视频直播和赛事直播服务。斗鱼TV的前身为ACFUN生放送直播,于201...

  • 先睹为快:斗鱼TV上市路演PPT曝光了

    斗鱼TV是一家弹幕式直播分享网站,为用户提供视频直播和赛事直播服务。斗鱼TV的前身为ACFUN生放送直播,于201...

  • 2019-06-25

    2019年6月,斗鱼年度最大的也是直播界最具代表性和影响力的线下盛会之一——斗鱼嘉年华将再现武汉! 今年斗鱼直播节...

网友评论

      本文标题:Swift斗鱼直播--首页处理TitleView和Content

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