layoutSubviews方法何时被调用?

我正在通过一个教程 ,提到以下方法:

-(void)layoutSubviews 

位于CustomerCell.m

在应用程序执行期间何时调用此方法? 它是否被自动调用? 我没有看到任何callback。

你会在这里find你的答案

编辑:直接从博客复制:

  • init不会导致layoutSubviews被调用(duh)
  • addSubview使layoutSubviews在被添加的视图,被添加到的视图(目标视图)以及目标视图的所有子视图上被调用
  • 只有在框架的大小参数不同的情况下,setFrame才能在视图上智能地调用layoutSubviews
  • 滚动UIScrollView会导致layoutSubviews在scrollView上被调用,并且它是superview
  • 旋转设备只调用父视图上的layoutSubview(响应的viewControllers主视图)
  • removeFromSuperview – 仅在superview上调用layoutSubviews

你是对的。 布局子视图是自动调用的。 查看文档以获取更多信息。

文档没有具体说什么时候这被称为。 但是,你几乎可以保证它是经常被调用的。 你真的只想重载这个方法,当你不能调整你的子视图或使用struts和弹簧自己移动。 一种情况是在设备改变方向时重新组织子视图位置。

layoutSubviews方法将在系统认为您的视图需要重新布局时随时调用。 例如,如果视图的框架被改变,或者子视图被添加等等。如果你需要手动触发这个,你可以调用setNeedsLayout方法。