iOS 创建带有Xib文件ViewController时 如何正确设置frame?
2016-02-25 16:13
686 查看
iOS开发中如何在创建ViewController时一起创建了Xib文件,这时我们在ViewDidLoad设置frame时 会出现获取到的view.frame是错误的,原因是:
调用方法viewDidLoad中,所有的控件的frame都是在当前storyboard中状态,然后viewdidlayoutsubview,应该是这个方法。这个会根据你在界面上所设定的约束开始调整各个view,如果没有约束,那应该还有automask什么的,会根据不同的设备尺寸自动调整frame。然后再是viewwillappeare方法。你可以自己去重写下viewWillLayoutSubviews,然后在里面看看self.view.frame会有什么变化。
下面说明下viewWillLayoutSubViews
- (void)viewWillLayoutSubviews{} 函数,对VC的调整可放在这里面
view即将布局其Subviews。比如view的bounds改变了(例如状态栏从不显示到显示,视图方向变化),要调整Subviews的位置,在调整之前要做的一些工作就可以在该方法中实现。
viewDidLayoutSubviews
view已经布局其Subviews。比如view的bounds改变了(例如状态栏从不显示到显示,视图方向变化),已经调整Subviews的位置,在调整完成之后要做的一些工作就可以在该方法中实现。
layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
调用方法viewDidLoad中,所有的控件的frame都是在当前storyboard中状态,然后viewdidlayoutsubview,应该是这个方法。这个会根据你在界面上所设定的约束开始调整各个view,如果没有约束,那应该还有automask什么的,会根据不同的设备尺寸自动调整frame。然后再是viewwillappeare方法。你可以自己去重写下viewWillLayoutSubviews,然后在里面看看self.view.frame会有什么变化。
下面说明下viewWillLayoutSubViews
- (void)viewWillLayoutSubviews{} 函数,对VC的调整可放在这里面
viewWillLayoutSubviews
view即将布局其Subviews。比如view的bounds改变了(例如状态栏从不显示到显示,视图方向变化),要调整Subviews的位置,在调整之前要做的一些工作就可以在该方法中实现。viewDidLayoutSubviews
view已经布局其Subviews。比如view的bounds改变了(例如状态栏从不显示到显示,视图方向变化),已经调整Subviews的位置,在调整完成之后要做的一些工作就可以在该方法中实现。
layoutSubviews在以下情况下会被调用:
1、init初始化不会触发layoutSubviews
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
相关文章推荐
- iOS App集成Apple Pay教程(附示例代码)
- iOS 视频边下边播
- iOS 的 XMPPFramework 简介
- 内存管理与属性的参数
- AFNetworking施工例子
- 关于IOS多线程的好的技术博客
- iOS sizeClass设备对照表
- iOS-OC-AFNetworking上传和下载(回调下载进度)
- IOS各种调试技巧(条件断点、僵尸模式、内存检测、图层透视图模式)
- IOS之导航控制器传值
- IOS之导航控制器
- iOS之新建xib无法通过拖动调整大小
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- iOS支付宝支付,,,实现步骤及注意事项
- iOS跳转到qq聊天界面
- IOS SEL (@selector)原理及使用总结
- iOS 打电话 发短信功能的实现
- iOSpop到指定界面
- iOS 获取十六进制颜色显示RGB,根据颜色画图片
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制