Ios 为什么可以';我不能通过代码更改UITableView的高度吗?

Ios 为什么可以';我不能通过代码更改UITableView的高度吗?,ios,cocoa,uitableview,height,Ios,Cocoa,Uitableview,Height,我当前无法通过代码更改我的UITableView的高度 默认情况下,它设置为320宽度和289高度 在代码中,在cellforrowatinexpath的末尾,我有 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.heig

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

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

在代码中,在
cellforrowatinexpath
的末尾,我有

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
,这是正确的。但是,我的
UITableView
显然与往常一样大(高度
289

我需要做什么才能使这项工作正常进行?


谢谢

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

在您的方面中,289是向用户显示的TableView帧高度显示单元

1个细胞=44//违约

因此,您可以添加两个单元格,其大小为88。所以它对用户是可见的。以防您添加7个单元格

7个细胞=308个


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

您可以在
视图中处理您的高度将显示:
视图显示:
。 可能是这样的

[myTableView setFrame:CGRectMake(20, 10, 725, ([self.myArray count] * 44))]; //44 is default height for cell
如果您计划删除单元格并动态降低表格高度,还可以在
表格视图:committeeditingstyle:forRowAtIndexPath:
中更新此高度

但请确保设置的tableview高度不超过其空间,因为这样会剪切tableview


希望这对您有所帮助。

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

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

CellForRowatineXpath是单元格的方法,而不是表的方法。确切地说,当您要更改帧时…?如果单元格高度是动态的,则可以在-(UITableViewCell*)tableView:(UITableView*)tableView CellForRowatineXpath:(NSIndexPath*)indexPath中计算高度。使用CGFloat cellHeight=[self-tableView:tableView-heightforrowatinexpath:indexPath];。您最好将计算出的高度存储到数组中,并使用它来计算TableView的高度您的表格是在UITableViewController还是UIViewController中?在UITableViewController中,无法更改帧。。。由于self.view==self.tableview而不是将单元格高度硬编码为44,因此如何在ViewDidDisplay中获取单元格高度。我知道我可以得到单元格高度视图。我是否应该检查表中是否至少有一行,然后将第一行从堆栈中弹出?是的,您可以在
willdidebeen:
中执行此操作。44是TableViewCell的默认高度,即使在iOS7中也是如此。所以你不用担心