为什么需要覆盖layoutSubviews

时间:2015-03-06 06:48:03

标签: ios uitableview uiview layoutsubviews

问题" When does layoutSubviews get called?"列出了几个案例:

  1. 调整父视图的大小
  2. 旋转设备
  3. 还有吗?
  4. 如果没有要求处理,对于UITableView,我们可以通过创建一个自定义UIView来为节标题创建标题视图。最简单的方法是通过UIView创建initWithFrame:,然后不再需要重新布局。

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

    不使用它的原因:

    1. KISS(保持简单和愚蠢)
    2. 无需重新布局
    3. 滚动时重新布局费用
    4. 我的问题是为这个案子提供更多建议。感谢。

1 个答案:

答案 0 :(得分:4)

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

  • 您的自定义UIView子类包含您要使用手动布局重新排列的子视图
  • 您的自定义UIView子类需要知道其大小何时因其他原因而发生变化,例如缩小字体大小或进行手动绘制

一般来说,您不需要覆盖此方法。大多数布局都是由视图控制器在适当的时间设置视图frame或使用自动布局完成的。