如果我的应用支持Portrait&横向模式和我在Landscape中启动我的应用程序,我看到UIViewController的视图框架大小仍然是viewDidAppear中Portrait的尺寸。 (例如:768x1024而不是748x1024)
当我创建并显示viewController时,我看到事件按此顺序出现:
shouldAutorotateToInterfaceOrientation // viewcontroller hasn't received rotate event yet
viewWillLayoutSubviews
viewDidLoad
shouldAutorotateToInterfaceOrientation // viewController now asked to change orientation
viewDidAppear
viewWillLayoutSubviews
通过这些事件序列,视图的帧大小仍然是Portrait的大小(尽管边界是正确的)。
我什么时候可以期望正确设置视图的帧?
答案 0 :(得分:0)
您必须使用Cocoa Auto Layout system来定义用户界面元素的布局约束。约束表示用户界面元素之间的关系,例如“这些视图从头到尾排列”或“此按钮应该与此拆分视图子视图一起移动。”在布置用户界面时,约束满足系统以如下方式排列元素:最接近约束。
观看this video了解更多详情
答案 1 :(得分:-1)
当您旋转设备时,框架不会旋转,只有框架内的边界会旋转。检查使用:
self.view.bounds
您将在旋转设备时看到它发生变化。
您需要阅读“查看编程指南”:
这是基本的。