iOS备忘 - view.frame在不同生命周期时的大小问题
2015-10-30 17:19
495 查看
有一个值得注意的地方,当我们要显示一个View的时候,它在viewDidLoad、viewWillAppear、viewDidAppear不同生命周期里时,view的frame是有点不同的。
viewDidLoad:此时view还只是被加载,会放入容器中显示,所以view的宽度高度等值会与xib或storyboard里面的配置值是一样的。
viewWillAppear|viewDidAppear:显示大小将会根据手机屏幕大小及约束自动调整。
输出:
viewDidLoad:此时view还只是被加载,会放入容器中显示,所以view的宽度高度等值会与xib或storyboard里面的配置值是一样的。
viewWillAppear|viewDidAppear:显示大小将会根据手机屏幕大小及约束自动调整。
//MARK: - ViewController Lifecycle override func viewDidLoad() { super.viewDidLoad() let frame = self.view.frame; DLog("frame{x:\(frame.origin.x),y:\(frame.origin.y),width:\(frame.size.width),height:\(frame.size.height)}") } override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated); let frame = self.view.frame; DLog("frame{x:\(frame.origin.x),y:\(frame.origin.y),width:\(frame.size.width),height:\(frame.size.height)}") } override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated); let frame = self.view.frame; DLog("frame{x:\(frame.origin.x),y:\(frame.origin.y),width:\(frame.size.width),height:\(frame.size.height)}") }
输出:
2015-10-30 18:13:20.965 didauth[374:47858] frame{x:0.0,y:0.0,width:600.0,height:600.0} [LoginViewController.swift:16]//ViewDidLoad 2015-10-30 18:13:20.967 didauth[374:47858] frame{x:0.0,y:0.0,width:320.0,height:568.0} [LoginViewController.swift:22]//ViewWillAppear 2015-10-30 18:13:21.032 didauth[374:47858] frame{x:0.0,y:0.0,width:320.0,height:568.0} [LoginViewController.swift:28]//ViewDidAppear
相关文章推荐
- iOS界面布局之三——纯代码的autoLayout及布局动画
- ios开发系列-后台文件
- 在iOS中使用icon font
- <iOS>Grand Central Dispatch简介
- IOS 点滴记录
- iOS TextField电话号码输入限制
- iOS两个应用程序之间的跳转和传值
- <iOS>多线程GCD
- iOS 8 自适应 Cell
- iOS图片拉伸技巧的三种方式
- iOS技术博客
- ios-Xcode引用VLCKit之后如何设置更高的Deployment Target(比6.1高)
- IOS monkey测试+命令行运行+日志收集
- IOS开发中有用的第三方库
- 《CoreData》系列(一)
- 关于隐藏iOS9键盘上新增的快捷方式工具条Shotcuts
- IOS_FMDB有关字典、数组存储及获取问题
- ios动画
- <iOS>系统提供的dispatch方法
- JS对于Android和IOS平台的点击响应的适配