横向和肖像的不同视图 - Xcode 6

时间:2015-03-02 22:20:19

标签: ios objective-c xcode layout

我制作了一个项目,其中我需要一个水平视图,另一个垂直方向视图。另外,我需要在垂直视图的水平视图和表格视图中有一个集合视图。

我一直试图找到一些教程,但没有成功或解决方案是旧的。我正在使用Xcode 6。

2 个答案:

答案 0 :(得分:0)

但是您可以使用集合视图实现表视图的等效操作。集合视图基本上是类固醇的表视图:更强大,更可配置,更通用。不是尝试实现两种类型的视图并在它们之间切换,而是适合Apple模式的设计只包含一个集合视图,在横向模式下显示两列或三列中的项目,但在纵向模式下只显示一列

This article描述了如何为集合视图实现自定义布局,并且它包含指向其他有希望相关材料的链接。

答案 1 :(得分:0)

如果您只需要从集合视图切换到表视图,那么请执行@BrettDonald所说的内容。但是,如果您需要更通用的方法来切换视图,请在视图控制器中实现:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [self.dynamicView removeFromSuperView];

    if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
        self.dynamicView = [[LandscapeView alloc] initWithFrame:self.view.bounds];
    } else {
        self.dynamicView = [[PortraitView alloc] initWithFrame:self.view.bounds];
    }

    [self.view addSubview:self.dynamicView];
}

willRotateToInterfaceOrientation实际上已在iOS 8中弃用,因此您还需要在建议的viewWillTransitionToSize:withTransitionCoordinator:中运行相同的代码。