我使用xib做一些简单的视图布局,并注意到我的子视图的大小与视图本身的大小有关。
我决定最后一次尝试提出这个问题时,我可能已经有太复杂的产品让人们完全明白我的要求。
这是一个简单的观点:
正如我希望的那样,这就是我想要的位置以及我希望如何展示自己如此所示:
如果您在底部注意到,我会记录视图的大小。我的viewDidLoad
生命周期方法中的日志如下所示。
NSLog(@"%f, %f", [[UIScreen mainScreen] bounds].size.width, self.blockView.bounds.size.width);
为什么视图宽度绝不接近报告应用程序视图大小的实际宽度?我试图在我的子视图下投下阴影但是从编程上看它认为视图更广泛,这不会起作用。此外,在所显示的紫色视图中以编程方式定位任何子视图也不起作用,因为该帧与期望帧不匹配。
请帮助。
谢谢。 编辑:缺乏睡眠导致忘记生命周期....答案 0 :(得分:1)
您应该在viewDidAppear中记录视图宽度。
viewDidLoad在视图控制器加载其视图后调用 层次结构到内存中。
调用viewDidLoad时,自动布局尚未根据视图的约束完成视图位置的计算。