加载不同的肖像/风景UIViews

时间:2010-06-09 21:30:03

标签: iphone objective-c uiview uiscrollview rotation

我有以下View COntroller结构:

ScrollViewController LandscapeViewController PortraitViewController

每个都有自己的.nib

应用程序以横向模式启动,其中许多横向视图添加到滚动视图中。每个横向视图都有其特定的纵向视图,因此我必须为每个视图分配相同的ID。你能告诉我,在旋转设备时如何为每个横向视图加载特定的纵向视图?

我必须制作两个滚动视图吗?一个用于景观,一个用于肖像?或者是否可以只滚动横向滚动视图加载一个纵向视图,其中包含基于ID的正确内容?我怎么能实现呢?

数据来自属性列表。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您可以在UIViewController中使用shouldAutorotateToInterfaceOrientation来提供您正在寻找的功能。在下面的示例中,我将切换视图以对应方向更改:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
    /* Switch to the portrait view or do any other custom layout changes for current Orientation */
       self.view = portraitView;
    } else if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
    /* Switch to the landscape view or do any other custom layout changes for current Orientation */
       self.view = landscapeView;
    }   
    return YES;
}

在您的情况下,您可以使用shouldAutorotateToInterfaceOrientation来调整视图大小或切换到相应的纵向视图。

希望有所帮助。