应用约束的UIView事件和设置子视图宽度

时间:2016-02-01 18:19:03

标签: ios autolayout

在我的iOS应用程序中,我使用自动布局将视图的宽度调整为其父级,其设置约束为尾随,前导,上下,为0。

我想根据视图的宽度进行一些计算,但是我似乎无法找到正确的事件,其中视图的新宽度是从它的布局计算出来的。它总是停留在600,包括layoutSubviews或updateConstraints等事件。

什么是正确的事件?什么是正确的方法?

2 个答案:

答案 0 :(得分:1)

当一个子视图导致兄弟子视图的帧发生变化时,我已完成此操作,我在子视图中的图层上添加了KVO通知。不确定它是否正确"但它确实有效。

[self.layer addObserver:self
             forKeyPath:@"bounds"
                options:0
                context:NULL];

...

- (void)observeValueForKeyPath:(NSString *)keyPath
                  ofObject:(id)object
                    change:(NSDictionary<NSString *,id> *)change
                   context:(void *)context {
    // calculate here.
}

答案 1 :(得分:-1)

适当框架可用的地方是viewDidAppear之后。您可以使用此方法进行计算。