我有一个视图和一个带有约束的UIView
类型的子视图,因此它的宽度等于其超级视图。(我使用auto Layout
)
但是,当我尝试在
- (void)viewDidLoad {
NSLog(@"%@",NSStringFromCGRect(self.subview.frame));//get subview's frame
}
方法,我总是得到{{0, 20}, {600, 320}}
,这意味着它的宽度是600。
但是实际宽度是320,这是否意味着调用此方法时该子视图尚未布局,如何在此方法中获得此实际宽度?
感谢任何帮助,谢谢。
答案 0 :(得分:0)
子视图的框架在viewDidLoad中无效 - 它还没有布局。将代码移至viewDidLayoutSubviews。
如果您发现自己有依赖关系需要查看viewDidLoad中的框架,那么您可能没有正确设计约束。查找可以在视图之间添加更多关系的区域。如果这没有帮助,请尝试以编程方式修改约束 - 使用自动布局时,您几乎不想查看或明确更改视图的框架。