我的UI出现问题,无法立即更新。
我先打
someCustomView.isHidden = false
。之后,我创建一个新的View Controller
的新实例。在新的VCviewDidLoad(), I am loading a
新的机器学习模型中,这需要一些时间。
private func someFuncThatGetsCalled() {
print("1")
self.viewLoading.isHidden = false
print("2")
performSegue(withIdentifier: "goToModelVCSegue", sender: nil)
}
当我按下调用此功能的按钮时,控制台上将打印“ 1”和“ 2”。但是,在我的新VC的viewDidLoad()完成之前,该视图不可见。
是否有可能立即强制更新UIView?setNeedsDisplay()
对我不起作用。
感谢您的帮助!
使用layoutIfNeeded()
Apple Docs
layoutIfNeeded()
如果布局更新有待解决,请立即布置子视图。使用此方法可以强制视图立即更新其布局。使用自动版式时,版式引擎会根据需要更新视图的位置,以满足约束的更改。使用接收消息的视图作为根视图,此方法从根开始布置视图子树。如果没有任何布局更新待处理,则此方法将退出,而不修改布局或调用任何与布局相关的回调。
使用方法
yourView.layoutIfNeeded()