iOS 7表视图横向单元格宽度

时间:2014-03-22 13:08:14

标签: ios uitableview uiviewcontroller

我已将表视图添加到UI视图控制器。当我将手机旋转到横向模式时,单元格宽度并未完全填满视图。请参见下面的屏幕截图。

似乎无法在这里找到优雅的解决方案。

enter image description here

编辑:您可以下载我未在此处调整大小的横向视图示例:

http://andrewherrick.com/spike/tableviewresize.zip

2 个答案:

答案 0 :(得分:7)

使用自动布局或相应的自动调整遮罩添加UITableView。

<强> 编程

自动布局:

UITableView *tableView = [[UITableView alloc] init];
tableview.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:tableView];
NSDictionary *viewsDictionary = @{@"tableView" : tableView };

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[tableView]|"
                                                                      options:kNilOptions
                                                                      metrics:nil
                                                                        views:viewsDictionary]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableView]|"
                                                                      options:kNilOptions
                                                                      metrics:nil
                                                                        views:viewsDictionary]];

自动调整面具

UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds];
tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
[self.view addSubview:tableView];

INTERFACE BUILDER / STORYBOARD

自动布局:

控制从表格视图拖动到超级视图并添加这些约束:

Layout Constraints

自动调整蒙版(无自动布局):

如果您使用手动帧操作

,这些应该是表视图的自动调整遮罩

Autoresizing Masks

<强>

在严肃的态度中,我尽可能清楚地告诉你,要适当地调整你的视野以使其灵活。如果您很难理解这一点,那么我建议您回过头来看看开始iOS开发的一些教程。 RayWenderlich是启动iOS时所能想到的一切的惊人资源。

<强>更新

您的测试项目增加了约束。它实际上花了我大约5秒钟来完成它。看看iPhone故事板。

http://speedy.sh/2jDwY/tableviewresize.zip

答案 1 :(得分:0)

看起来苹果iOS 7方向调整大小表视图有一些问题。

在正确的位置使用以下内容可以解决问题。

[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows]
withRowAnimation:UITableViewRowAnimationNone];

除此调用外,如果需要,还可能需要根据cellforRowIndexPath数据源中的新方向大小更改宽度。