gpt4 book ai didi

ios - layoutifneeded 不会触发layoutSubviews

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

所以,我有这样的代码

UIView.animate(withDuration: 2) {
self.navigationController?.navigationBar.isHidden = self.hideNavBar
view.layoutIfNeeded()
// view.setNeedsLayout()
}

但是当我使用 view.layoutIfNeeded() 调用此代码时,主视图的layoutSubview函数根本没有被调用

但是如果我打电话view.setNeedsLayout()相反,layoutSubview 函数被调用并更新所有约束。

不应该view.setNeedsLayout & view.layoutIfNeeded都应该调用layoutSubview函数吗?只是他们的时间有点不同?

最佳答案

layoutIfNeeded 方法,顾名思义,立即布局,但前提是存在“无效” View 。相反,setNeedsLayout 会使 View “无效”,但它将在下一个更新周期进行布局。

调用(首先setNeedsLayout,然后layoutIfNeeded)确保 View 失效并立即重新布局。

来自文档:

关于ios - layoutifneeded 不会触发layoutSubviews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852936/

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