beginTime 动画开始时的延迟,比如延迟0.5秒执行,默认0,也就是马上开始

duration 动画持续时间,默认0

speed 动画速度,默认1,如果duration = 10,speed = 2, 那实际上动画5秒钟就执行完了。 设置为0会暂停动画,大于1会快进,0~1会减慢动[……]

继续阅读

变换主要学习两种:仿射变换和3D变换

  • 仿射变换(CGAffineTransform):
  • 仿射变换采用3*3的二位矩阵乘法来进行变换,仿射的意义主要在于无论矩形怎么变换,平行的两条线在变换后依然平行,如图:
    仿射变换矩阵图

    计算过程如下:

    1
    2
    = [x*a + y*c + 1*tx,
       x[......]<p class="read-more"><a href="https://gjh.me/305.html">继续阅读</a></p>

    1. 需要注意,UIView的-drawRect:方法没有默认的实现,而且如果UIView检测到-drawRect: 方法被调用了,它就会为视图分配一个寄宿图,这个寄宿图的像素尺寸等于视图大小乘以 contentsScale的值。所以如果不需要寄宿图,有没有其他的绘制需求,那么不要在UIView的子[……]

    继续阅读

    1. contents 用于显示图片,这个属性虽然类型是id,但只能接受CGImageRef和NSImage对象,其它对象就会得到一个空白图层,需要注意OC中传递参数需要用到toll-free bridging,将CGImageRef转换为OC对象

    1
    layer.contents = (__br[......]<p class="read-more"><a href="https://gjh.me/271.html">继续阅读</a></p>

    1. Cocoa中视图和Layer都是树形结构。视图可以处理事件,例如鼠标点击和手势触控,视图在层级中可以相互嵌套,一个视图可以管理它的所有子视图。Layer也可以树形嵌套,父Layer也可以管理子Layer的位置等属性,但Layer不处理用户的交互,所以Layer并不清楚具体的响应链(虽然Laye[……]

    继续阅读