zoukankan      html  css  js  c++  java
  • 网易新闻

    7.网易新闻

       1.项目思路:1.搭建界面,处理界面细节,处理业务逻辑

         0.   注意点

               1.创建6个控制器设置标题,创建标题scrollerView通过btn的标题属性拿到控制所设置的标题来添加子控件
               2.创建内容ScrollerView要考虑导航控制器是否存在的情况,
               3.通过点击标题的btn来监听点击事件,来添加控制器所对应的View到ScrollerView中
               4.在添加所有btn按钮中添加标题滚动区域与内容滚动区域

    界面搭建

              1.1设置标题滚动区域:注意点:要判断导航控制器是否隐藏来设置scrollorV标题的y值,通过按钮的title属性.
              1.2设置内容区域:注意点:设置y值时为CGRMY值中的标题的最大y值
              1.3设置控制器的题目并添加到控制器中
        2.  设置标题

               2.0容易遗忘:拿到控制器,就可以拿到控制器的view,根据拿到的顺序就可以按顺序添加view,一个功能一个方法
               2.1设置按钮的:题目通过创建控制器vc=childr[i],在vc.title拿到,设置字体颜色,设置尺寸设置滚动区域contentSize
               2.2设置按钮的状态:点击时实现titleClick:方法,通过属性在抽取选中方法select方法选中为红色,并且添加子控制器的view上去
               2.3注意点:设置内容滚动区域时要根据偏移量来设置.
        3.  设置内容滚动区域

               3.1创建可变数组通过懒加载记录所有的可选中的按钮,
               3.2通过UIScrool代理设置滚动停止时所添加的view,通过数组属性获取所对应的下标在子添加子控件中记录数组,通过titleClick方法或者选中方法获得所选中的按钮,选中方法的话就要再添加view.     
          4.  设置标题选中按钮居中

               4.1可以通过设置标题整个ScrollView的setcontenoff属性来改变偏移量
               4.2重写偏移量:通过按钮中心点的位置减去屏幕一半的宽度去设置偏移量
               4.3设置最小偏移量大于零,小于最大偏移量 .注意点:self.titleScrollView.bounds.size.width与self.titleScrollView.contenSize.width是两回事.
          5.  设置选中按钮字体变大,以前的角标还原

               5.1根据偏移量来监听左右按钮的角标,并随着偏移量变大,或恢复
               5.2角标不能超过总按钮个数,那到右边的角标
               5.3根据左右按钮的transform,来改变放大缩小
               5.4把以前的按钮恢复原来的大小
         6.   设置字体颜色(越靠近右边越红)

               6.1根据左边leftScale从1~0,右边从0~1,[UIColor colorWithred:()g:()b:()]来设置颜色的渐变
     7.   封装

               7.1封装的好处:提高复用性
               7.2封装的注意点:1.要让人用的舒服2.扩展性强
               7.3加载所有子标题延迟到viewWillAppear中调用,因为要等封装的子控制器调用完viewDidLoad时在加载子标题
    8.底层原理

                8.1bounds,frame深入研究,一般没有修改bounds时默认(x,y)都为0
                8.1.1frame:可视范围,bounds:描述 可视范围在内容范围 区域,改变bounds的y值就是修改内容范围与可视范围的距离.原理如:8.1.2
                8.1.2,因为可视范围是不会移动的添加bounds的y值,bounds的y值改变,所以内容范围距离bounds的距离改变:bounds相当与内容范围的坐标系(内容范围是不可见的,一般添加子控制器是添加到内容范围上,所以通过子控制器去检验内容范围)
                8.2 bounds的本质:修改原点位置(内容范围距离控制器)
                8.3UIscrollerView的地底层实现原理:就是添加UIView,在通过手势监听来改变UIView的bounds来使scrollerView滚动
               
               
     

     

  • 相关阅读:
    java线程池及创建多少线程合适
    消息队列消息积压了怎么办?
    Redis线程模型
    redis单线程如何支持高并发
    基于redis实现分布式锁
    PHP面试总结
    【转】Redis入门
    面试常考之二叉树
    计算机网络之面试常考
    操作系统之面试常考
  • 原文地址:https://www.cnblogs.com/xieyunqq/p/5134602.html
Copyright © 2011-2022 走看看