


1.每个UIView上都有一个自带的layer,我们称他们为
root layer(根层)
2.所有的非根层都存在隐式动画,也就是我们手动 创建的layer都存在隐式动画
什么是隐式动画?
1.对非根层layer的属性进行修改,默认自动的出现一些效果动画
2.这些效果称为AnimatableProperties
(可动画属性)
列举几个可动画属性
1.bounds ,用于设置CALayer的宽高,会有缩放效果
2.backgroundColor,用于设置CALayer的背景颜色,会有渐变的效果
3.position,用于设置CALayer的位置,会有平移的效果
下面来个小的Demo看看实际的效果

//1.懒加载设置一些属性
private lazy var diyLayer:CALayer = {
let ly = CALayer()
ly.backgroundColor = UIColor.redColor().CGColor
ly.bounds = CGRectMake(0, 0, 100, 100)
ly.position = CGPoint.init(x: 200, y: 100)
return ly
}()
//2.添加到根层
override func viewDidLoad() {
super.viewDidLoad()
view.layer.addSublayer(diyLayer)
}
//3.点击屏幕,改变背景
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
diyLayer.backgroundColor = UIColor.greenColor().CGColor
}
移动位置

//1.懒加载设置一些属性
private lazy var diyLayer:CALayer = {
let ly = CALayer()
ly.backgroundColor = UIColor.redColor().CGColor
ly.bounds = CGRectMake(0, 0, 100, 100)
ly.position = CGPoint.init(x: 0, y: 0)
return ly
}()
//3.点击屏幕,改变背景
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
// diyLayer.backgroundColor = UIColor.greenColor().CGColor
diyLayer.position = CGPoint.init(x: 0, y: 400)
}
隐式属性怎么查?
1.点击属性进去看看,

2.去文档中搜索CALayer
,然后就能看到有一个文档专门告诉你有哪些隠式动画属性
本文的demo地址
网友评论