1

我在 UIView 中有几个并排的 UITableView,我想让整个东西自动调整大小。我有一个 UIView 在我的 init() 方法中:

// I don't know how big frontBack should be, so I'd like it to autosize
UIView *frontBack = [[UIView alloc] initWithFrame:CGRectZero];
frontBack.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
UITableView *table = [[UITableView alloc]
                      initWithFrame:CGRectMake(0, 0, r.size.width / 2, height) style:UITableViewStyleGrouped];
table.autoresizingMask = UIViewAutoresizingFlexibleHeight;
table.dataSource = model1;
[table reloadData];
[frontBack addSubview:table];

... (add second table similarly, except with model2)
...
controller.view = frontBack;

这不起作用。表格是“高度”像素高(比他们需要的要小;文本被截断)。

我尝试了几种让 UITableViews 调整大小的方法,但没有成功

// contentSize is correct, but frame size does not change
[table reloadData];
table.frame.size.height = table.contentSize.height;

// contentSize is correct, but bounds does not change
[table reloadData];
table.bounds.size.height = table.contentSize.height;

// Nothing appears to change
[table setNeedsLayout];
[table layoutIfNeeded];

// Again, no change
[table sizeToFit];

我想我在这里遗漏了一些基本的东西,但如果有人能指出它是什么,我将不胜感激。

4

1 回答 1

0

table.bounds.size.height = table.contentSize.height;

这是一个只读属性,您需要重新设置框架。

另外,你确定你包含的 UIView 没有切断表格内容吗?你也应该调整它的大小。

于 2013-04-08T01:29:52.487 回答