我遇到了一个让我疯狂的问题。我已经解决了,但我对此事的理解还不够。 我查看了文档,但我猜我选择了错误的主题,因为没有找到解释。
每次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
中使其表现得像预期的那样?
提前谢谢!