0
我在xib中构建了一个视图,但是我在viewDidAppear
之前得到的框架是{0,0,1000,1000}
。这不是我想要的。我为视图设置了AutoLayout。如何在viewDidAppear
之前得到正确的框架?如何在iOS 10中的viewDidAppear之前获得正确的视图框架?
感谢。
我在xib中构建了一个视图,但是我在viewDidAppear
之前得到的框架是{0,0,1000,1000}
。这不是我想要的。我为视图设置了AutoLayout。如何在viewDidAppear
之前得到正确的框架?如何在iOS 10中的viewDidAppear之前获得正确的视图框架?
感谢。
初始化工作顺序:
布局计算完成后,可以使用正确的框架。布局计算在步骤4之前开始并在步骤5之后结束。所以viewDidAppear
是计算帧的最早步骤。
所以我恐怕你不能早于这一点。您必须将相关代码移至viewDidAppear
。
非常有帮助,但是如果我想在立即加载xib之后获得正确的框架,有什么办法可以得到它吗?有人说调用'view.setNeedsLayout()'和'view.layoutIfNeeded()',但不适合我。我想使用xib视图作为我的collectionView标题。并且高度基于屏幕宽度。 – Neko
我认为'view.setNeedsLayout()'和'view.layoutIfNeeded()'的技巧适用于早期的iOS版本。但据我所知,现在根本不可能比'viewDidAppear'更早获得计算帧大小。你必须找到一个不同的方法来实现你的目标。 – Codo