gpt4 book ai didi

iOS LayoutIfNeeded() 未返回正确的大小

转载 作者:行者123 更新时间:2023-11-30 14:03:23 50 4
gpt4 key购买 nike

不太明白为什么layoutIfNeeded仍然没有返回布局的正确宽度...但是如果我通过调度获得宽度,它将返回正确的宽度。看来layoutIfNeeded 不会立即布局,而是异步的。如果我错了请纠正我。提前致谢

override func viewWillAppear(animated:Bool){
super.viewWillAppear(animated)
self.view.setNeedsLayout()
self.view.layoutIfNeeded()

//incorrect width returned for UIView

dispatch_async(dispatch_get_main_queue(), {
//correct width returned
}

}

最佳答案

当 View 完成 subview 的布局后,将调用委托(delegate)方法“viewDidLayoutSubviews”。在该方法或在此方法之后调用的任何其他方法中,如果您获得 View 的边界而不是框架(在启用自动布局的情况下),它将返回正确的宽度。

另一件事可能对您有帮助,那就是在 viewWillAppear 之前调用委托(delegate)方法“viewDidLayoutSubviews”。当您调用 self.view.layoutIfNeeded() 时也会调用它

关于iOS LayoutIfNeeded() 未返回正确的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32707072/

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