旋转时UIViewController的怪异UIView帧

时间:2013-06-12 12:15:40

标签: ios uiview uinavigationcontroller rotation frame

我遇到了一个让我疯狂的问题。我已经解决了,但我对此事的理解还不够。 我查看了文档,但我猜我选择了错误的主题,因为没有找到解释。

每次VC旋转时,我都会为子视图分配新的中心,因此subview始终保持居中。

我正在使用viewDidLayoutSubviews更改轮播时的UI。 当我们有一个VC,既没有嵌入UINavController也没有嵌入UITabBar,在旋转时我们得到以下帧:

portrait
{{0, 20}, {768, 1004}} 

land left
{{20, 0}, {748, 1024}} 

upside down
{{0, 0}, {768, 1004}} 

land right
{{0, 0}, {748, 1024}} 
嗯,严肃吗?该设备是风景,我的大小是748 1024 ??? (我理解它的748而不是768,因为状态栏。) 但为什么它不是1024 748?

当我放置背景颜色时 - 所有视图都变为彩色,就像它在1024 748那样。但是当我将中心设置为子视图时,它位于左下方的某个位置,正好位于748 1024的矩形中心。

我觉得自己像一个对发展一无所知的巨大白痴(我为iOS开发了两年),并且觉得我是有史以来最愚蠢和愚蠢的程序员。 我很震惊,为什么我从未遇到过这个问题? 我检查了我的旧项目 - 设置了一些NSlog,一切都很好。那么为什么在我的新项目和最新项目中,它让我看到这些奇怪的信息呢?

然后我注意到了 - UINavController。

我将VC嵌入到UINavCon中...... 这是日志:

land left
{{0, 0}, {1024, 704}} 

upside down
{{0, 0}, {768, 960}} 

land right
{{0, 0}, {1024, 704}} 

portrait
{{0, 0}, {768, 960}} 

是的,所有在我的旧项目中转动的VC都位于UINavControllers ...这就是为什么......

但是,我的同事们,请给我一个链接,帮助我得到关于这个主题的启示。为什么没有UINavController的框架如此奇怪,以至于我无法排列subviews,为什么在UINavController中使其表现得像预期的那样? 提前谢谢!

0 个答案:

没有答案