小谈 CALayer

2018-06-07  本文已影响16人  shenyuanluo

本文首发在我的个人博客: http://blog.shenyuanluo.com/
,喜欢的朋友欢迎订阅。

在 iOS 的界面中,通常都是使用 UIView 来进行绘制 UI,但其底下最终还是通过 CALayer 来进行绘制。

UIView 和 CALayer 区别与联系

CALayer 的基本属性

类型 名称 用途
CGRect bounds 大小
CGPoint position 描点在父 layer 的位置(父 layer 的坐标系)
CGPoint anchorPoint 锚点位置(当前 layer 的坐标系),取值范围:0~1
CATransform3D transform 变换,是一个矩阵(可以理解为结构体)
id contents 内容(可以设置为图片,但是需要桥接)
CGFloat borderWidth 边宽
CGColorRef borderColor 边的颜色
CGColorRef backgroundColor 背景颜色
float opacity 透明度
CGColorRef shadowColor 阴影颜色
float shadowOpacity 阴影透明度,设置范围 0~1
CGSize shadowOffset 阴影的偏移
CGFloat shadowRadius 阴影的模糊度
CGFloat cornerRadius 圆角
BOOL masksToBounds 超过部分进行是否裁剪

positionanchorPoint

更详细的解说可以参见这里

隐式动画

LayerImplicitAnimation.png

实践

设定 layerboundspositionanchorPoint 之后,通过 CATransform3DRotate 可以做出一些特别的动画效果,例如:

SYClockExample.gif

时钟 Demo 下载


参考

  1. 彻底理解 position 与 anchorPoint
  2. iOS 实践:带时分秒指针的时钟动画
上一篇 下一篇

猜你喜欢

热点阅读