Ios 应用程序以横向方向启动时,UITableViewController宽度不正确

Ios 应用程序以横向方向启动时,UITableViewController宽度不正确,ios,ipad,ios7,uikit,Ios,Ipad,Ios7,Uikit,我正在用iOS7开发iPad 我有一个自定义的UITableViewController子类,它工作得很好(即,它按预期显示所有数据),只是当设备以横向方向启动时,它没有正确设置宽度 如果应用程序是在纵向模式下启动的,则表视图的宽度是正确的-它占据了整个屏幕的宽度。当我旋转到横向视图时,它会调整表视图内容的大小以占用所有可用空间。这很好 但是,如果我在横向视图中启动应用程序,表视图的宽度仅为可用空间的3/4左右。如果我旋转到纵向模式,这个不正确的宽度仍然存在;内容已调整大小,但仍仅占可用宽度的3

我正在用iOS7开发iPad

我有一个自定义的
UITableViewController
子类,它工作得很好(即,它按预期显示所有数据),只是当设备以横向方向启动时,它没有正确设置宽度

如果应用程序是在纵向模式下启动的,则表视图的宽度是正确的-它占据了整个屏幕的宽度。当我旋转到横向视图时,它会调整表视图内容的大小以占用所有可用空间。这很好

但是,如果我在横向视图中启动应用程序,表视图的宽度仅为可用空间的3/4左右。如果我旋转到纵向模式,这个不正确的宽度仍然存在;内容已调整大小,但仍仅占可用宽度的3/4/

我没有使用自定义的
UITableViewCell
s,只是
UITableViewCellStyleSubtitle

我已经尝试在单元格和UITableView中添加了一个
自动ResizingMask
。然而,我不相信我在正确的地方这么做。我一直在TableViewController子类的
init
方法中设置autoresizingMask:

self.view.autoresizingMask=uiviewsautoresizingflexiblewidth


当以横向模式启动时,我需要做什么才能使我的表视图自动适应可用宽度?

如果您不从NIB创建
UIView
,那么您应该将物理维度传递给它的
initWithFrame
,或者使用
frame
属性设置它

[[aSubView alloc] initWithFrame:someFrame];
正如您所指出的,不是
autoresizingMask
不正确,因为视图已经调整了大小,只是调整不正确;视图框不正确

例如,您可能希望传递封闭视图的边界,该边界将在(0,0)处锚定子视图,并在所有方向填充超级视图

[[aSubView alloc] initWithFrame:self.view.bounds];

创建时,您将哪个CGRect传递给UITableView?您是否找到了解决方案?我实际上并没有手动分配视图,因为我使用的是
UITableViewController
的子类,我假设它创建了视图。是否有一种方法需要重写以手动分配视图,以便传递一个帧?让我假设您正在执行类似于
MyVC*tableVC=[[MyVC alloc]initWithStyle:UITableViewStylePlain]的操作
后跟
[self.navigationController-pushViewController:tableVC-animated:YES]。或者你是从笔尖开始的<代码>MyVC*tableVC=[[MyVC alloc]initWithNibName:@“my_vc”bundle:nil]。如果是,请不要触摸
自动重新设置屏幕大小键
。作为顶级VC推出的UITableViewController将开箱即用。您是否正确实施了
-应自动旋转
-支持的接口方向