iOS-6 - 如何实现有条件的自动旋转?

时间:2012-12-10 21:16:18

标签: ios6 autorotate

我花了三天的时间试图弄清楚iOS-6的自转性问题,并没有找到解决方案。

所有视图旋转的应用程序或完全禁用旋转的应用程序相对简单。并且(方便地满足我们的需求)如果您使用MPMoviePlayerViewController它将自动旋转,即使该应用已禁用自动旋转。

但是条件自动旋转,其中一些视图允许旋转而其他视图不旋转,这是难以捉摸的。我可以实现条件自动旋转(通过让根视图控制器“咨询”顶视图控制器来确定它允许的旋转),但是当退出旋转视图时,它会使先前视图旋转(之前没有)。这是不可接受的。

有没有人破解这个坚果?

(就像我告诉我的老板,如果你想要更广阔的视野,你应该在打印机上放更宽的纸张。)

进一步的问题:让基本的条件轮换工作(见下面的评论)后,我发现它在“正确错误”的情况下会出现一些屏幕。在这个不可旋转的屏幕上,我按下“Intro”转到可旋转的屏幕。

enter image description here

在可旋转的屏幕上,我旋转它,然后旋转它从它返回。当我回来时,我有这个屏幕:

enter image description here

XIB文件很香草:

enter image description here

错误的部分似乎是“图像视图 - img_hea ...”元素,由于某种原因,它被“放大”了大约4倍。视图中没有逻辑移动/调整大小元素(除了标准的UITableView内容),并且根本没有对UIImageView问题的引用。

在ViewWillAppear中放置了一个NSLog,我看到UIImageView最初的尺寸为320x44,但从旋转的屏幕返回时尺寸为320x160。

这看起来像是一个彻头彻尾的Apple bug。

更多:如果我将问题屏幕旋转并向右/向左旋转(回到纵向),图像会被拧紧。我猜测iOS在返回之前“返回”屏幕,这就是为什么它被搞砸了。有趣的是,在旋转视图中,UIImageView根本没有显示,NS维度中的Y维度为零。

此外,现在我注意到了,在旋转视图和旋转后视图中,叠加在问题图像上的标签完全消失了。

确定关闭整个UIVIew的“自动调整子视图”,这样可以正常运行。这是我第二次发现“Autoresize Subviews”XIB属性导致了片状行为。

0 个答案:

没有答案
相关问题