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

时间:2014-07-21 21:35:46

标签: ios ipad ios7 uikit

我在使用iOS7的iPad上工作。

我有自定义UITableViewController子类,它工作得很好(即它按预期显示所有数据),但它没有在设备启动时正确设置宽度取向。

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

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

我没有使用自定义UITableViewCell,仅UITableViewCellStyleSubtitle

我尝试在单元格和UITableView中添加autoresizingMask。但是,我并不相信我会在正确的地方做这件事。我一直在我的TableViewController子类的init方法中设置autoresizingMask:

self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth

在横向模式下启动时,如何让我的表格视图自动适应可用宽度,我需要做什么?

1 个答案:

答案 0 :(得分:0)

如果你从 创建UIView,那么你应该将物理维度传递给initWithFrame,或者使用frame设置它} property。

[[aSubView alloc] initWithFrame:someFrame];

正如您所指出的那样,autoresizingMask不是不正确的,因为视图已经调整大小,只是不正确;视图框架不正确。

例如,您可能希望传递封闭视图的边界,这会将您的子视图锚定在(0,0)所有方向上的超视图。

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