【问题标题】:Under auto layout, when is a view's frame set?在自动布局下,视图的框架何时设置?
【发布时间】:2014-01-22 00:17:50
【问题描述】:

如果启用了自动布局,我们不需要自己设置视图框架。自动布局可以帮助我们计算视图的大小和原点。我们可以在控制器方法“viewDidAppear”中获取帧。但我想知道视图在其生命周期内何时获得其计算框架?

【问题讨论】:

  • 您如何确定框架未初始化?你在看什么观点,什么时候看?你没有提供足够的信息。
  • 这似乎与思科无关。那为什么标题里是“IOS”呢?

标签: ios autolayout


【解决方案1】:

当收到layoutSubviews 消息时,视图会根据自动布局设置其子视图的框架。 From the documentation:

此方法的默认实现在 iOS 5.1 及更早版本上不执行任何操作。否则,默认实现使用您设置的任何约束来确定任何子视图的大小和位置。

如果您在自己的 UIView 子类中覆盖 layoutSubviews 并且您正在使用自动布局,这就是为什么调用 [super layoutSubviews] 很重要的原因。

【讨论】:

    【解决方案2】:

    在自动布局中,您不需要设置框架。只需将您的对象初始化为 [[object alloc] init] 并通过自动布局约束控制其位置

    【讨论】:

    • 这是真的,最初反对这个答案的人是个白痴
    猜你喜欢
    • 2012-09-24
    • 1970-01-01
    • 2016-11-20
    • 2022-01-21
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多