【发布时间】:2018-06-13 17:54:01
【问题描述】:
我有一个 UIView,我想在 10 秒内将不透明度设置为 0。但是,动画应该在 7.5 秒后开始。这是因为我首先对帧更改进行动画处理,并且 UIView 应该仅在动画的最后 1/4 持续时间中淡出。这是我的尝试:
override func viewDidLoad() {
let x = UIView()
view.addSubview(x)
x.frame = CGRect(x: 100, y: 100, width: 100, height: 100)
x.backgroundColor = .black
let animation = CABasicAnimation(keyPath: "opacity")
animation.timingFunction = CAMediaTimingFunction(controlPoints: 0, 0, 0, 1)
animation.fromValue = 1
animation.toValue = 0
animation.duration = 10
animation.fillMode = kCAFillModeForwards
x.layer.add(animation, forKey: "opacity")
}
UIView 会立即淡出。如何使用 mediaTimingFunction 延迟它?
【问题讨论】:
-
定时函数用于控制动画在进行时的节奏。它不能造成延迟。使用 beginTime 创建延迟。
标签: ios swift core-animation