您的位置:首页 > 移动开发 > IOS开发

iOS备忘 - view.frame在不同生命周期时的大小问题

2015-10-30 17:19 495 查看
有一个值得注意的地方,当我们要显示一个View的时候,它在viewDidLoad、viewWillAppear、viewDidAppear不同生命周期里时,view的frame是有点不同的。
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: