如何让UITableView自动调整大小?

时间:2013-04-07 15:50:16

标签: ios uitableview autoresize autosize

我在UIView中有几个并排的UITableViews,我想让整个事情自动化。我有一个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];

我认为我在这里缺少一些基本的东西,但如果有人能指出它是什么,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

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

这是一个只读属性,您需要再次设置该帧。

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