• 知识点复习


    1224笔记


    知识点复习
     
    1. 触摸事件&手势识别
     
    1> 4个触摸事件,针对视图的
    2> 6个手势识别(除了用代码添加,也可以用Storyboard添加)
     
    附加在某一个特定视图上的,其中需要注意轻扫手势通常会附加到根视图上。
     
    * 大部分操作,都会在touchesBegan事件中处理,以防夜长梦多!
    * touchesEnd事件通常用于处理touchesMoved事件中的收尾工作!
     
    以上两项内容都必须要掌握
     
    3> 响应者链条,目的是为了让大家能够理解手势触摸事件的传递过程,一旦遇到需要拦截事件时,知道从何处下手。
     
    响应者链条只需要理解“链条”的产生和事件传递的顺序即可。
     
    ==================================================================
    2. Quartz2D绘图
     
    学习的线路图,为什么要学习Quartz2D
     
    1> 以图形方式,实时绘图的技术,可以高效的绘制简单图形,增加界面的表现
     
    2> 核心动画 <- CALayer(负责UIView中的内容的) <- Quartz2D
     
    Quartz2D是C语言的框架!根OC语法不同
     
    Quartz2D是跨平台(MAC & iOS)的,大多数跨平台的技术都是C语言框架的。
    GCD(多线程)
     
    需要掌握的内容:
    1> 理解上下文的概念
    2> 理解并且创建简单的绘图路径
    3> 能够完成直线、矩形、圆形、圆弧、图像、文本的绘制,可以辅助快速的提升UI界面的表现
    4> 能够用图像上下文绘制图像
    5> 绘制径向渐变、PDF(理解就行)
    6> 所有的绘图工作必须在drawRect:方法中进行,如果需要更新显示,使用setNeedDisplay方法。
     
    ==================================================================
    3. CALayer图层
     
    1) 每一个视图都有一个根图层,图层用来负责视图中内容的显示,不负责响应事件
    2) 图层可以添加子图层,每一个视图有且仅有一个根图层
    3) 所有的非根图层,都具有隐式动画属性,直接修改这些属性,就可以产生动画
    4) 核心动画的本质是通过以修改图层键值路径的方式实现动画的!
    5) 在动画过程中,图层实际上是将视图中的内容生成一张图像参与动画,视图本身的位置并不会发生变化,其目的就是为了提高性能!
     
    * 图层的工作顺序
     
    1) 在
    - (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
    代理方法中绘制根图层中的所有内容
    绘制结束后,调用视图的
     
    2)
    - (void)drawRect:(CGRect)rect
    从代理方法中,将绘制结果(图像)传给drawRect,直接将内容拷贝到屏幕
     
    3) 调用子图层的
    - (void)drawInContext:(CGContextRef)ctx
    绘制子图层中的内容
     
    关于CALayer需要掌握的内容:
     
    1. 记住可动画属性
    position          位置
    backgroundColor     背景颜色
    opacity               透明度
    transform          形变
    cornerRadius     圆角
    content               内容(id)图像
     
     
    ==================================================================
    4. CAAnimation
     
    基本动画和关键帧动画都是通过修改图层的可动画属性实现的动画方式,以健值路径的方式修改。
     
    要修改属性,可以利用view.layer.xxx智能提示帮助,不用硬记,能眼熟就行。
     
    1) CABasicAnimation
         fromValue     从哪里来
         toValue          到哪里去
    2) CAKeyFrameAnimation
         values          一堆数值的数组
         path          针对position属性的动画
     
    3) CAAnimationGroup
     
         将基本动画和关键帧动画组合并发使用
     
         需要注意的是:keyPath不要重复,群组中的每个动画只能负责修改一个keyPath
     
    4) *** CATransition(转场) ***
     
         type:转场的类型
         subType:方向(上下左右)
     
    所有的动画都不要忘记指定duration。
     
    其他常用属性
    * repeatCount          重复次数
    * autoReverse          自动翻转
     
    在绝大多数应用程序开发中,基本动画和都可以使用块代码替代。关键帧动画在使用负责效果时点缀的。
     
    对以上动画有印象,知道大概的使用方法,在需要的时候,去哪里查询即可。
     
    * 转场动画使用还是比较频繁!
     
     
    ==================================================================
    5. UIDynamic UI动力学
     
    使用步骤:
    1> 实例化一个animator
    2> 实例化要参与仿真的视图或者控件
    3> 实例化仿真行为
         重力: Gravity
         碰撞: Collision          有代理方法,可以添加边界碰撞
         附加: Attachment     有刚性、弹性区别,设置damping即可
              可以附加到一个点,也可以附加到一个视图上
         吸附: Snap          设置damping
         推:     Push               单次推和连续推
              如果是单次推,需要将active = YES
              需要指定
              * 力量
              * 角度
         元素属性,通常只需要改弹力系数即可
     
    4> 将行为添加到animator,仿真立刻开始启动
     
    ==================================================================
    6. KVC & KVO
     
    KVC - Key Value Coding
    KVO - Key Value Observer
     
    KVC是通过键值路径的方式间接访问对象属性的,CAAnimation中可以通过KVC直接动态添加属性。
    KVO是可以通过键值路径的方式观察某一个对象属性的变化,并及时通知!
     
    关于KVO一定记住需要释放,否则会影响性能!
     
    ==================================================================
    今天综合演练项目程序结构需要理解和掌握
     
    © chenyilong. Powered by Postach.io


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    php上传进度条
    array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
    password_hash 与 password_verify
    这是一个微信带参数的二维码,自定义菜单,与图文回复
    go to 语句用起来还是挺方便的
    初次使用海豚php的一个例子
    图片下载
    一对一的关联映射
    延迟加载
    proxy和proxy-no的策略取值区别
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3556327.html
Copyright © 2020-2023  润新知