ios - CAMediaTimingFunction 与不透明动画

标签 ios swift core-animation

我有一个 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 延迟它?

最佳答案

将持续时间设置为 2.5 秒,并在开始帧动画后 7.5 秒开始动画

animation.beginTime = CACurrentMediaTime() + 7.5

关于ios - CAMediaTimingFunction 与不透明动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50843412/

相关文章:

ios - .net 与 Objective c SHA-512 不匹配

ios - 反斜杠 N 在 swift 2.2 中不起作用

ios - 完美的 Swift3 Boing

swift - 带有 Swift 3 和 alamofire 4 的 Firebase API

ios - 在应用程序之间切换时保持用户登录

iPhone UITabBarController

ios - CALayer - 从 View 中移除

ios - Swift UITableview Custom Cell with multiple section array and row data array Search 实现

ios - 在 Swift 3+ 中使用 NSPredicate 对自定义对象进行过滤

ios - 子类化的 UISegmentedControl titleTextAttributes 并不总是适用