如何使用UIKit在Swift 5中立即强制更新UI?

问题描述 投票:0回答:1

我的UI出现问题,无法立即更新。

我先打someCustomView.isHidden = false。之后,我创建一个新的View Controller的新实例。在新的VC viewDidLoad(), 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()对我不起作用。

感谢您的帮助!

ios swift xcode uiview uikit
1个回答
0
投票

使用layoutIfNeeded() Apple Docs

layoutIfNeeded()

如果布局更新有待解决,请立即布置子视图。使用此方法可以强制视图立即更新其布局。使用自动版式时,版式引擎会根据需要更新视图的位置,以满足约束的更改。使用接收消息的视图作为根视图,此方法从根开始布置视图子树。如果没有任何布局更新待处理,则此方法将退出,而不修改布局或调用任何与布局相关的回调。

使用方法

yourView.layoutIfNeeded()
© www.soinside.com 2019 - 2024. All rights reserved.