1

在过去的三天里,我一直在试图找出 iOS-6 自动旋转的混乱,但还没有找到解决方案。

拥有一个所有视图都旋转或完全禁用旋转的应用程序相对简单。并且(方便地满足我们的需要)如果您使用 MPMoviePlayerViewController,即使应用程序禁用了自动旋转,它也会自动旋转。

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

有没有人破解过这个坚果?

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

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

在此处输入图像描述

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

在此处输入图像描述

XIB 文件非常普通:

在此处输入图像描述

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

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

这看起来像一个彻头彻尾的苹果错误。

更多: 如果我使问题屏幕可旋转并向右/向左旋转(回到纵向),图像就会被搞砸。我猜iOS在旋转回来之前会“返回”到屏幕,这就是它被搞砸的原因。有趣的是,在旋转视图中,UIImageView 根本没有出现,Y 维度在 NSLog 中为零。

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

OK:关闭了整个 UIVIew 的“Autoresize Subviews”,这样就可以正常工作了。这是我第二次发现“Autoresize Subviews”XIB 属性会导致不稳定的行为。

4

0 回答 0