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滚动
               
               
     

     

  • 相关阅读:
    POJ 3710 Christmas Game#经典图SG博弈
    POJ 2599 A funny game#树形SG(DFS实现)
    POJ 2425 A Chess Game#树形SG
    LeetCode Array Easy 122. Best Time to Buy and Sell Stock II
    LeetCode Array Easy121. Best Time to Buy and Sell Stock
    LeetCode Array Easy 119. Pascal's Triangle II
    LeetCode Array Easy 118. Pascal's Triangle
    LeetCode Array Easy 88. Merge Sorted Array
    ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
    ASP.NET MVC 学习笔记之面向切面编程与过滤器
  • 原文地址:https://www.cnblogs.com/xieyunqq/p/5134602.html
Copyright © 2011-2022 走看看