UIScrollView 不旋转到横向
Posted
技术标签:
【中文标题】UIScrollView 不旋转到横向【英文标题】:UIScrollView does not rotate to landscape 【发布时间】:2011-04-06 19:40:21 【问题描述】:这是最简单的东西,但它让我发疯,无法弄清楚。
很简单,看下面的解决方案
我的应用不会自动旋转。它只是卡在纵向中。
我的 AppDelegate 创建了一个 viewController 女巫已经取消了 shouldAutorotate 的注释并简单地返回 yes。
我的 viewController 设置一个滚动视图(x)作为它的视图,并添加一个子类自定义滚动视图(y)作为它的子视图。
比 scrollview(y) 添加 UIView 作为它的子视图。此 UIView 充当内容视图,并具有 1 个或多个其他 UIView 作为子视图。
所以:AppDelegate -> scrollView(x) -> scrollView(y) -> UIView -> 1个或多个UIView的
我在调用 shouldAutorotate 时显示了一行。当应用程序完成加载时,这种情况会发生 2 次。当我旋转模拟器时,没有任何反应,显然没有调用 shouldAutorotate,因为我的日志中没有显示一行。
UIScrollview 上是否有阻止其旋转的属性?
更新:我刚刚更改了我的 plist.info 以横向启动应用程序。现在应用卡在横向,无法旋转到纵向。
仅供参考:我没有使用界面生成器,全部在代码中完成。
【问题讨论】:
滚动视图可以正常旋转。我刚刚创建了一个简单的基于视图的应用程序,并在 xib 的视图中添加了一个滚动视图。刚刚将 shouldAutoRotate... 添加到 viewController。 谢谢尼克,我也测试过了。基本上我的应用程序遵循苹果的 PhotoScroller 示例。添加 shouldAutorotate 方法后,此示例也会旋转。 但是你的应用不对?你在使用 git 之类的版本控制软件吗?当应用程序非常简单时返回一些步骤可能会有所帮助,看看轮换是否有效。 正确,我的应用不旋转。不,我没有使用 git,只是 xcode 提供的普通标准东西。明天我会尝试回到基础,已经很晚了(2200 CET),感谢尼克的提示。 【参考方案1】:解决方案:原来我对记忆有点保守。在我的应用程序委托中,我将创建一个 viewController 的实例,将其添加到窗口中,然后在其上调用 release,认为它已添加到窗口中,因此我不再需要它了。馊主意。 因此,shouldAutorotate 消息被发送到一个不再存在的对象。我确实在我的控制台中收到了一条消息,说一条消息正在发送到已释放的对象,但在我旋转模拟器后仅数秒(20 左右)。
我了解到,您应该始终在 appDelegate 中保留对“主/根视图控制器”的引用作为实例变量
【讨论】:
感谢您发布解决方案,您可以自己接受。以上是关于UIScrollView 不旋转到横向的主要内容,如果未能解决你的问题,请参考以下文章
使用 Storyboard 和 Autolayout 旋转到横向后,UIScrollView 中的 UIButtons 不可触摸?
在 UIScrollView 问题中旋转 UIImageView
UIScrollView,分页和旋转:旋转后第二个视图未正确对齐