4

在“何时调用 layoutSubviews? ”这个问题中列出了几个案例:

  1. 父视图被调整大小
  2. 设备旋转
  3. 还有吗?

如果不需要处理,对于UITableView,我们可以通过创建一个自定义的UIView. 最简单的方法是创建UIViewby initWithFrame:,然后不再需要重新布局。

因此,在我看来,我们不需要覆盖layoutSubviews等。但是有一些意见坚持覆盖它。

不使用它的原因:

  1. KISS(保持简单和愚蠢)
  2. 无需重新布局
  3. 滚动时重新布局有成本

我的问题是为这个案例获得更多建议。谢谢。

4

1 回答 1

4

您通常不需要覆盖layoutSubviews. 基本上只有两个原因:

  • 您的自定义UIView子类具有要使用手动布局重新排列的子视图
  • 您的自定义UIView子类需要知道它的大小何时因其他原因而更改,例如缩小字体大小或进行一些手动绘图

一般来说,您不需要重写此方法。大多数布局要么通过视图控制器frame在适当的时间设置视图,要么通过使用自动布局来完成。

于 2015-03-06T07:46:02.657 回答