我有一个遏制UIViewController
,在我的viewDidLoad
方法中,我从故事板中加载了它的子视图控制器。然后我将子视图控制器视图添加为子视图并尝试设置此新视图大小:
childVC.view.frame=CGRectMake(0,0,768,1004);
当您在横向模式下启动应用程序时,会在左侧(物理设备的底部)获得20px的“间隙”。 如果我在代码中获取设备方向并使用
,我可以避免这种情况 CGRectMake(0,0,748,1024);
表示帧属性,而不是检测到格局时。但是,我认为必须有不同的解决方案。
在问题出现之前:我设置框架而不是bounds属性,因为一旦解决了这个问题,我需要将视图放在除0,0以外的地方。据我所知,没有别的方法可以做到这一点,对吗?
答案 0 :(得分:4)
根据父视图的边界设置子视图的框架。然后确保子视图的自动调整遮罩设置为“弹性宽度”和“弹性高度”。不要硬编码像你这样的尺寸。
childVC.view.frame = parentVC.view.bounds;
childVC.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
一旦这样做,您可以根据需要调整子视图的框架。但它仍然应该基于父视图的界限。