父子控制器知识点总结

默认情况下 所有控制器的view的autoresizion的mask属性都包含了UIViewAutoresizingFlexibleWidth 和 UIViewAutoresizingFlexibleHeight两个值 也就是宽度和高度跟随父控件拉伸

所以如果我们从xib加载一个很大的view的时候 这个时候view的尺寸就是xib里面的尺寸 所以如果我们这个时候往view里面添加另一个控制器view的时候 可能会导致这个添加的view 看不见 因为被拉伸的很小了 为什么拉伸很小 比如你xib创建的view 是 600 * 600 当你在viewdidload里面添加另一个控制器的view的时候 这个时候父控制器view的尺寸是600*600 但是当父控件的view加载完成的时候 加入你是ipone6模拟器 那么尺寸会变成 375 * 667 所以里面的子控件 也会相应的被缩小 。

怎样解决上面的问题呢?
解决方法很简单 就是 在添加子控制器的view 之前 先设置自控制器的view 不要跟随父控件拉伸
可以这样设置:
//定义子控制器
SYSubViewController *one = [[SYSubViewController alloc]init];
//设置尺寸
one.view.frame = CGRectMake(10,100,100,100);
//设置不要跟随父控件拉伸
one.view.autoresizingMask = UIViewAutoresizingNone;

//然后添加到父控制器中
[self.view addSubview:one.view];
[self addChildViewController: one];

这样就能解决上述问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容