gpt4 book ai didi

swift - 启动屏幕消失后和 viewDidAppear() 方法运行之前出现奇怪的动画 'lag'

转载 作者:行者123 更新时间:2023-11-30 11:09:09 24 4
gpt4 key购买 nike

启动屏幕关闭后,我的应用程序的 Logo 和标题(它们位于容器中)应该更靠近屏幕顶部。在关闭启动屏幕和 viewDidAppear 方法之间,我的容器在后台出现奇怪的“闪烁”。正如你所看到的,我正在使用 snapkit,但它应该与问题无关。这是我的代码:

class WelcomeScreenViewController: UIViewController {

var welcomeScreenView: WelcomeScreenView {
return view as! WelcomeScreenView
}

override func loadView() {
let contentView = WelcomeScreenView(frame: .zero)
view = contentView

}

override func viewDidLoad() {
super.viewDidLoad()
self.welcomeScreenView.checkWeatherButton.transform = CGAffineTransform(translationX: 0, y: 200)
self.welcomeScreenView.checkWeatherButton.addTarget(self, action: #selector(showCityChoiceVC), for: .touchUpInside)
navigationController?.isNavigationBarHidden = true
}

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)

self.welcomeScreenView.appNameLogoContainerVerticalConstraint?.isActive = false
self.welcomeScreenView.appNameLogoContainer.snp.makeConstraints({ (make) in
make.top.equalTo(self.welcomeScreenView).offset(100)
})

UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.5, options: [], animations: {
self.welcomeScreenView.layoutIfNeeded()
self.welcomeScreenView.checkWeatherButton.transform = CGAffineTransform(translationX: 0, y: 0)
}, completion: nil)

}

@objc private func showCityChoiceVC() {
self.navigationController?.pushViewController(RegisterViewController(), animated: true)
}

最佳答案

闪烁来自于在viewDidAppear中设置约束。请改用 viewWillAppearviewDidLoad。当您的 View 实际出现在屏幕上时,将调用viewDidAppear。因此,发生的任何更改对于用户来说都是可见的。

关于swift - 启动屏幕消失后和 viewDidAppear() 方法运行之前出现奇怪的动画 'lag',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52366804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com