这个相对来说很简单,就是普通的使用
一.创建CALayer,并且使用它的部分属性
设置了背景图片 override func viewDidLoad() {
super.viewDidLoad()
let layer = CALayer()
layer.backgroundColor = UIColor.redColor().CGColor
layer.cornerRadius = 34
layer.frame = CGRectMake(134, 155, 90, 90)
view.layer.addSublayer(layer)
}
CALayer
可以像UIView
一样,创建,设置背景,圆角,以及frame,如果没有frame的话,是不现实的,也要使用addSublayer
,有顺序的~,效果如上图
override func viewDidLoad() {
super.viewDidLoad()
let diyLayer = CALayer()
diyLayer.backgroundColor = UIColor.redColor().CGColor
diyLayer.cornerRadius = 34
diyLayer.frame = CGRectMake(134, 155, 90, 90)
diyLayer.contents = UIImage.init(named: "content.png")?.CGImage
view.layer .addSublayer(diyLayer)
}
diyLayer.masksToBounds = true圆角哪去了?过去说过,我们设置了主layer--
diyLayer
的圆角,但是没有显示,是因为content
属于次layer,在上边,如果想有裁剪,应当设置主layer的切图属性diyLayer.masksToBounds = true
疑惑
如果layer
和view
的使用基本都一样,到底用哪个比较好?
效果基本一致,但是要看我们需要的功能,layer只有展示的功能,不能交互,少了事件处理的功能,但是他的性能更高,不要交互,选择layer~
二.point和anchorPoint(锚点)
point
这个大家都知道,在父控件中的位置。以父控件(0.0)点来判断的。
anchorPoint
layer中的锚点位置 红色layer在绿色view上的位置是由layer.point决定的,假设我们打算放到point(100,100)这个位置去 layer的锚点是(0,0) 锚点是(0.5,0.5) 锚点是(1,1) 锚点是(1,0.5)1.定位点,锚点 :决定着CALayer的哪一个点在父控件的point位置上,默认是(0.5,0.5)
2.锚点的根据是以自己的(0.0)开始判断的
3.锚点的取值范围是(0,1)
4.锚点是相对于自己的layer的,point是相对于父控件的
锚点就是layer的那一个点在point上,这下子应该理解了是不
本文的demo地址
网友评论