2010-09-15 50 views
1

我想设置一个iPad测试应用程序,基于窗口,我有一个单一的视图控制器和单个视图。当我旋转iPad时,我希望工具栏的方向改变,但不是视图本身的方向。例如,您工作的某种背景视图固定在设备上,但状态栏和工具栏围绕它旋转。这将使用户能够从各个角度处理视图,但始终使用正确导向的工具集。更改iPad的方向,旋转状态栏,工具栏,但不是主视图

我想要的美丽实现可以在iPad应用程序的画笔中找到,画笔的方向锁定在设备上,工具栏围绕它旋转。我认为其他绘画应用程序也是这样做的。

我一直在想如何做到这一点,但在耗尽了许多关于方向的许多其他问题后,我仍然处于亏损状态。

任何人都可以指出我朝着一个整洁的解决方案的正确方向吗? autoresizeMask的自动调整的特定组合?在另一个方向上反向旋转动画?使用多个并发视图控制器,一个用于旋转视图,另一个用于非旋转视图?

我倒是很欣赏它,

(编辑:试图澄清的问题,OLIE的评论后。)

+0

我投了你的问题,但你可能想给它一个简短的编辑,以澄清你要寻找的效果是有一种“背景图像/视图”,仍然锁在设备上,视图控制器在顶部旋转。我现在明白了,但是当我最初阅读这个问题时并不清楚。 – Olie 2010-10-18 14:45:23

回答

0

我曾经有过一段时间这样做的错误 - 我非常肯定你所要求的会让你对Apple产生HIG违规拒绝。不过,我会试着回忆起问题所在。我很确定它是这样的:

我有一个tabbarViewController说:“我定位到任何方向。”

有一个标签是一个普通的老的UIViewController是说:“我只是做LandscapeLeft & L-右”

当你旋转,内部(UIVC)留放,但外界(TabVC)左右旋转的东西。

我可能会有一些细节向后或其他复杂的,但一般的想法是:堆叠VC,并非全部VC。

祝你好运!

+0

谢谢你的回答。我其实很早就开始工作了。有人指出了我的解决方案:在视图控制器的'-loadView'方法中,您希望它的视图保持固定,使用'UIWindow'的'-insertSubview:belowSubview:'方法,在下面插入非旋转视图导航控制器的视图。这工作完全正确。 – 2010-10-17 12:02:46

+0

啊,你去了。非常类似的想法,你只是将第二个视图附加到窗口,而我堆叠视图控制器。一般来说,我倾向于在窗口中准确地拥有一个视图(使用视图控制器),然后再从其中查看其他所有视图。我不知道为什么,但它只是感觉“更清洁”。无论如何,你的方式是有效的 - 而且不是很糟糕 - 这就是最重要的。 – Olie 2010-10-18 14:41:59

1

为了防止转动,你把这个在您的视图控制器。 m:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

但是你说你仍然希望视图框架在响应旋转时调整大小。我自己并没有必要这样做,所以我不确定是否足以让autoresizingMask具有灵活的宽度和高度;您可能还必须执行didRotateFromInterfaceOrientation:并使用setNeedsLayout和/或手动调整视图大小。

+0

谢谢你的回应,但是控制单个视图的旋转在这里确实不是问题。我想要的是保持主视图不变,状态栏和工具栏在方向改变时围绕它旋转。为了让整个屏幕旋转或不旋转花生,手边的问题是同一屏幕不同部分的不同旋转行为。 – 2010-09-16 09:53:15

0

就我所处理的程度而言,我看不到任何简单的问题答案。怎么样旋转一切(tabbar,导航和状态栏,你的视图控制器),然后在“旧坐标”中重绘视图控制器的内容,所以对于用户来说,它会看起来像不旋转?