我在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];
我认为我在这里缺少一些基本的东西,但如果有人能指出它是什么,我将不胜感激。
答案 0 :(得分:0)
table.bounds.size.height = table.contentSize.height;
这是一个只读属性,您需要再次设置该帧。
另外,你确定你的UIView没有切断表格内容吗?你也应该调整它的大小。