为什么我不能通过代码更改UITableView的高度?

时间:2014-02-12 07:26:35

标签: ios cocoa uitableview height

我目前无法通过代码更改UITableView的高度。

默认情况下,它设置为320宽度和289高度。

在代码中,在cellForRowAtIndexPath的末尾,我有......

self.tableView.frame = CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, [self.myPlayers count] * cell.frame.size.height);

在我返回牢房之前。

我写出了NSLog,它的宽度为320,高度为88为2行,这是正确的。但是,我的UITableView显然与常规尺寸相同(高度289)。

我需要做些什么来完成这项工作?

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以在viewWillAppear:viewDidAppear:处理自己的身高。 可能是这样的

[myTableView setFrame:CGRectMake(20, 10, 725, ([self.myArray count] * 44))]; //44 is default height for cell

如果您计划删除单元格并动态降低表格高度,也可以在tableView:commitEditingStyle:forRowAtIndexPath:中更新此高度。

但是请确保你没有设置tableview高度超过你拥有的空间,因为那样会查看tableview

希望这会对你有所帮助。

答案 1 :(得分:0)

表格视图的框架在添加和删除表格单元格时会发生变化。如果添加了更多单元格,则tableView高度将会增加。

在您的方面289是向用户显示的TableView帧高度呈现单元格。

1个细胞= 44; //默认

因此,您可以添加两个88大小的单元格,以便用户可以看到它。如果您添加7个单元格

7 cell = 308;

因此您的tableview大小会根据单元格总大小而增加,并且您尝试滚动查看更多单元格

答案 2 :(得分:0)

您必须在viewDidLoad中设置高度。您需要知道要打印的行数。

[myTableView setFrame:CGRectMake(x, y, width, ([self.Players count] * heightRow))];