1

在 Interface Builder 中,我有以下内容

UIViewController
-- View
---- TableView

在我的 UIViewController 我已经设置

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

我还有其他在 IB 中的视图控制器。我在这里想念什么?我可以让它旋转的唯一方法是使用变换方法。

4

4 回答 4

3

您是否有机会在基于选项卡的应用程序中使用表格视图?如果你是,你只能获得一个支持横向模式的视图,如果标签栏控制器的所有视图控制器都支持横向模式。

除此之外,我看不出您的视图不支持横向模式的任何原因。

于 2009-03-26T14:23:01.820 回答
1

问题在于自动调整大小设置。更具体地说,在 Interface Builder 中,确保单击 autoresizing,然后在 Size Inspector 中,确保 tableview 所有它的表视图的父视图在顶部、左侧、右侧都填充了红色箭头,并选择了这两个内部箭头。

我想知道提问者是否真的在主视图的子视图中有表格视图。对于在视图层次结构中更深一层的表视图,我看到了这种行为:

  • 主视图
    • 子视图
      • 表视图

默认情况下,主视图正确设置了自动调整大小的箭头,但如果您添加其他视图,则不会。

在回答有关多个视图控制器问题的问题时:请注意 UIViewController 不是 UIView 的委托。事实上,事件链看起来是相反的——首先系统看到一个自动旋转并告诉 UIViewControllers。如果 UIViewControllers shouldAutoresize 返回 yes,则 UIViewControllers 会调整其主视图的大小。如果设置正确,主视图的大小调整会自动导致其子视图调整大小。

根据Apple docs,您不应该有多个视图控制器来控制视图的不同部分-例如,用于主视图子视图中的表视图的单独表视图控制器-因为它与事件链混在一起-您可以看到这是怎么回事。不知道这是否有帮助。

于 2011-07-18T02:34:00.533 回答
0

我刚试过这个,它按预期工作。我想你需要提供更多细节。根据我的经验,当视图“无法”旋转时,那是因为某处的某些视图控制器告诉它不要旋转。检查以确保所有视图控制器都从 shouldAutorotateToInterfaceOrientation 返回正确的值:

于 2009-03-25T18:36:41.453 回答
0

如果您使用情节提要,您的 VC 包含 UITableview,请检查您的场景是否未选中 AutoLayout。

于 2014-12-18T09:26:05.783 回答