【问题标题】:Why can't I change the height of my UITableView through code? [closed]为什么我不能通过代码更改我的 UITableView 的高度? [关闭]
【发布时间】:2014-03-10 09:18:24
【问题描述】:

我目前无法通过代码更改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)。

我需要做什么才能完成这项工作?

谢谢!

【问题讨论】:

  • cellForRowAtIndexPath 是 Cell 而非表格的方法。
  • 你到底什么时候想换框架...?
  • 如果您的单元格高度是动态的,您可以在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 中计算高度。通过使用 CGFloat cellHeight = [self tableView:tableView heightForRowAtIndexPath:indexPath];。您最好将计算出的高度存储到数组中,并使用它来计算 tableview 的高度
  • 你的表是在 UITableViewController 还是 UIViewController 中?在 UITableViewController 你不能改变框架......因为 self.view == self.tableView

标签: ios cocoa uitableview height


【解决方案1】:

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

在您的方面 289 是向用户显示的 TableView 框架高度。

1 单元格 = 44; //默认

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

7 单元格 = 308;

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

【讨论】:

    【解决方案2】:

    您可以在viewWillAppear:viewDidAppear: 中处理您的身高。 大概是这样的

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

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

    但请确保您设置的 tableview 高度不要超过您拥有的空间,因为这样 tableview 将被剪切

    希望对你有所帮助。

    【讨论】:

    • 如何在 viewDidAppear 中获取单元格高度,而不是将单元格高度硬编码为 44。我知道我可以获得单元格高度 viewDidAppear。我是否应该检查表中至少有 1 行,然后从堆栈中弹出第一行?
    • 是的,您可以在 willDidAppear: 中进行操作。并且 44 是 TableViewCell 的默认高度,即使在 iOS7 中也是如此。所以你不必担心
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-29
      • 2020-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      相关资源
      最近更新 更多