###简单介绍
在iOS中,一般你看得到的,点得着的都是View,比如一个按钮、一个文本输入框、或者图标,都是UIView,而CAlayer则是图层,他们最大的区别是UIView是可交互的,而CAlayer却是相反。
###CAlayer基本属性
常用属性 | 说明 | ||
---|---|---|---|
cornerRadius | 设置圆角 | ||
shadowOffset | 设置阴影偏移量 | ||
shadowColor | 设置阴影颜色 | ||
shadowOpacity | 设置阴影透明度 | ||
shadowRadius | 设置阴影半径 | ||
shadowPath | 设置阴影路径 | ||
borderWidth | 设置边框 | ||
borderColor | 设置边框颜色 | ||
masksToBounds | 子图层是否跟随主图层 | ||
transform | 设置CATransform3D动画 | ||
position | 用来设置CALayer在父层中的位置 | ||
zPosition | 多个Layer时,数值大的会遮挡数值小的 | ||
anchorPoint | 设置锚点 | ||
anchorPointZ | 多个Layer时,数值小的会遮挡数值大的 | ||
bounds | 参考UIView | ||
frame | 参考UIView | ||
hidden | 参考UIView | ||
doubleSided | 参考UIView | ||
doubleSided | 图层有双面 |
transform | 解释 | ||
---|---|---|---|
CATransform3DMakeAffineTransform(CGAffineTransform m) | 设置2D变形 | ||
CATransform3DMakeRotation(angle, x, y, z) | 设置3D旋转 | ||
CATransform3DMakeScale(x, y, z) | 设置3D伸缩 | ||
CATransform3DMakeTranslation(x, y, z) | 设置3D平移 |
基中position和anchorPoint,是CAlayer里面非常重要的两个属性,而且也比较容易误解,特别是锚点,position对于设置了frame的layer,他几乎等价于UIView里面的中点,而锚点,默认值为{0.5,0.5},决定着CALayer的某个点最终和position所在的点重合决定图层的位置。
|
|
比方说用上面的代码创建了一个图层,则position的值为(50,50),为上图绿点表示,我们通过self.layer.anchorPoint改锚点的值,看上面的图,将能很好的理解,你不需要想太多,只要想着,锚点最终会和position点重合,套用上面图的做法,就可以了。
###属性设置注意事项
属性设置时,存在部分属性冲突问题,如设置了阴影,如果再设置masksToBounds属性为YES,则会发现阴影没有设置成功。