【问题标题】:How to react to size changes caused by autolayout constraint on a UIView?如何对 UIView 上的自动布局约束引起的大小变化做出反应?
【发布时间】:2016-01-28 20:27:49
【问题描述】:

我有一个具有特定外观的自定义 UIView。我想要它,所以如果 UIView 的宽度由于代码设置其自动布局宽度约束而发生变化,我想通过相应地更改外观来对变化做出反应 - 一个例子是设置角半径。

我的自定义 UIView 如何对 UIView 上的自动布局约束引起的尺寸变化做出反应?

【问题讨论】:

标签: ios uiview autolayout


【解决方案1】:

覆盖layoutSubviews:

- (void)layoutSubviews {
    [super layoutSubviews];
    [self updateCornerRadius];
}

【讨论】:

  • 这很容易。这是 UIView 中唯一在应用布局约束时触发的方法吗?
  • 我相信自动布局将setCenter:setBounds: 发送到视图以设置其位置和大小,因此您可以覆盖它们,但我建议只覆盖layoutSubviews
  • 嗯,还有drawRect: 可能会被发送。但我也建议坚持使用 layoutSubviews。
猜你喜欢
  • 2013-05-14
  • 2016-03-05
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多