【问题标题】:iOS UIView : setNeedLayout, setNeedDisplay, layoutSubViews and layoutIfNeedediOS UIView:setNeedLayout、setNeedDisplay、layoutSubViews 和 layoutIfNeeded
【发布时间】:2017-02-10 11:23:58
【问题描述】:

谁能告诉我 这 4 种方法的定义和作用

 1. setNeedLayout
 2. setNeedDisplay
 3. layoutSubViews
 4. layoutIfNeeded.

我google了很多都找不到好的答案。

【问题讨论】:

  • 我记得只调用setNeedsLayout 将确保调用layoutIfNeeded layoutSubViews
  • 请添加作为答案,它也会帮助其他人:)
  • 右手得到了类似的答案,可能你没有正确搜索?喜欢thisthis,他们的回答有详细信息
  • 为什么不直接命令+单击这些方法并查看内部。 :) @AbhishekThapliyal
  • 通常你只需要调用layoutIfNeeded,如果你对约束进行了修改来让视图更新它,也可以把它放在UIView.animated中,以动画整个布局更新

标签: ios objective-c uiview


【解决方案1】:
  1. setNeedsLayout 可用于调用第四个layoutIfNeeded。确实需要它。
  2. setNeedsDisplay 在下一次运行循环迭代中调用 drawRect 方法,并且与所讨论的其余三个方法没有真正的关系
  3. layoutSubviews 执行视图子视图的实际布局
  4. layoutIfNeeded 在需要时调用 layoutSubviews。您可以使用第一种方法setNeedsLayout

【讨论】:

  • 感谢您的回答。如果对这些进行更多解释,将会有很大帮助。 :)
  • 你到底想解释什么?
  • 另一个答案有详细解释,你说要简单解释,我认为他做得很好
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多