ios - 你可以在 viewDidLoad 上运行 UIViewPropertyAnimator 吗?

标签 ios swift

我正在尝试运行一个动画,该动画在 4 秒的持续时间后更改 View 的颜色,但动画会跳到最终结果而不是动画。

在这里,我创建了一个“lightView”,一旦呈现此 ViewController,它将从红色到白色缓进缓出。我也使用 SnapKit 来设置约束。

override func viewDidLoad() {
    super.viewDidLoad()
    let lightView = UIView()
    lightView.backgroundColor = .red
    lightView.alpha = 0.33

    view.addSubview(lightView)

    lightView.snp.makeConstraints { (make) in
        make.width.equalTo(view)
        make.height.equalTo(view).offset(-70)
        make.centerX.equalTo(view)
        make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
    }

    let dismissButton = UIButton()
    dismissButton.backgroundColor = Global.globalShared.hexStringToUIColor(hex: Global.globalShared.danger)
    dismissButton.setTitle("Dismiss", for: .normal)
    dismissButton.addTarget(self, action: #selector(dismissButton_Pressed), for: .touchUpInside)
    dismissButton.layer.cornerRadius = 5

    view.addSubview(dismissButton)

    dismissButton.snp.makeConstraints { (make) in
        make.width.equalTo(100)
        make.height.equalTo(30)
        make.centerX.equalTo(view)
        make.bottom.equalTo(view)
    }

    let viewColorAnimator: UIViewPropertyAnimator = UIViewPropertyAnimator(
        duration: 4.0,
        curve: .easeInOut)

    viewColorAnimator.addAnimations {
        lightView.backgroundColor = .white
    }

    viewColorAnimator.startAnimation()

}

在不同的 ViewController 中,动画 ViewController 的呈现方式如下:

@objc func startButton_Pressed(){
    //registerLocal()
    self.present(NoiseLightViewController(), animated: true, completion: nil)
}

是否允许在 viewDidLoad 中运行动画?如果是这样,我做错了什么?

最佳答案

在 View 完成布局过程之前,无法运行任何动画。所以你必须把动画代码放在viewDidAppear中。

关于ios - 你可以在 viewDidLoad 上运行 UIViewPropertyAnimator 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49397730/

相关文章:

java - freemarker生成的docx后缀的word文档在iphone上无法显示图片

ios - NSGenericException : This coder requires that replaced objects be returned from initWithCoder

ios - 如何将 TableViewController 连接到我的主 ViewController?

ios - 为什么 webkit view 连接不上 App Store

ios - iOS中Swift如何使用CGColorCreate变白

ios - iOS快速录制的视频已删除,但应用程序数据仍然很大

ios - UICollectionView 没有出现

android - Cordova hideKeyboardAccessoryBar 不工作

ios - 在应用内的 View 中显示 Settings.bundle Root.plist

ios - 尝试制作一个 15 秒的视频 CMTimeMake