CATransition转场动画
提供层状态间动画转换的对象。
你可以通过创建和添加一个cattransitions对象到一个层的状态之间的过渡。默认转换是交叉渐隐,但是您可以从一组预定义转换指定不同的效果。
如下代码,展示了如何在名为transitioningLayer的CATextLayer的两种状态之间进行转换。当图层第一次创建时,它的背景色设置为红色,它的字符串属性设置为红色。当调用runTransition()函数时,会创建一个新的catranstion对象,并将其添加到transitioningLayer中,层的状态会改变,使其背景颜色为蓝色,其呈现的文本为蓝色。最终的结果是,推动过渡动画从左到右的红色状态和从左进入场景的蓝色状态。
import UIKit
class ViewController: UIViewController {
let transitioningLayer = CATextLayer()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
transitioningLayer.frame = CGRect(x: 50, y: 100,width: 300, height: 160)
transitioningLayer.backgroundColor = UIColor.green.cgColor
transitioningLayer.string = "green"
runTransition()
view.layer.addSublayer(transitioningLayer)
}
func runTransition() {
let transition = CATransition()
transition.duration = 2
transition.type = .push
transitioningLayer.add(transition,forKey: "transition")
// Transition to "blue" state
transitioningLayer.backgroundColor = UIColor.blue.cgColor
transitioningLayer.string = "Blue"
}
}
过渡开始点和结束点
1、startProgress
指示接收器的起始点作为整个转换的一部分。
合法的值是0.0到1.0之间的数字。例如,要在进度的一半开始转换,可以将startProgress设置为0.5。默认值为0。
2、endProgress
指示接收器的端点作为整个转换的一部分。
必须大于等于startProgress,且不能大于1.0。如果endProgress小于startProgress,则行为未定义。默认值为1.0。
过渡性质
1、type
指定预定义转换类型。
如果在筛选器属性中指定了自定义转换,则忽略此属性。默认为fade。
- fade 图层的内容会随着可见或隐藏而淡入。
- moveIn 该层的内容滑动到任何现有内容的位置上。公共转换子类型与此转换一起使用。
- push 该层的内容在滑动到合适的位置时推动任何现有的内容。公共转换子类型与此转换一起使用。
- reveal 该层的内容按照转换子类型指定的方向逐渐显示出来。subtype与此转换一起使用。
2、subtype
指定一个可选的子类型,该子类型指示预定义的基于运动的转换的方向。
默认为nil。如果在筛选器属性中指定了自定义转换,则忽略此属性。
- fromRight 转换从图层的右侧开始。
- fromLeft 转换从图层的左侧开始。
- fromTop 转换从图层的上侧开始。
- fromBottom 转换从图层的下侧开始。
自定义转换过滤器
filter
提供转换的可选核心图像过滤器对象。
这个属性在iOS中不被支持。