更改UITableViewCell的高度

16

我想让UITableViewCell变得更大。我该怎么做?我已经尝试过调整它的框架大小,但仍然没有任何变化。我该怎么办呢?

5个回答

36
你需要实现
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

在你的UITableViewDelegate中有一个方法。


18

你可以这样做...

//Change the Height of the Cell [Default is 44]:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
  if (indexPath.section == 0) {
   if (indexPath.row == 1) {
     return 90;
   }
  }
  return 44;
}

我希望这能帮到你。


实际上我正在做类似的事情,我将它与文本标签的长度相比较并使其更大。 - user973985

8

更改表格单元格高度的方法有2步,无需任何额外代码:

  1. 从Storyboard中选择你的Table View。在大小检查器中更改行高属性。
  2. 选择Table View Cell后,在大小检查器中更改行高属性。

请注意,必须同时设置Table View的行高属性和Table View Cell的行高属性。缺一不可

如果只设置其中一个,将无法生效。


0

我发现这个答案对于改变表格视图单元的高度来说是最具信息量和最新的。

简而言之:

  1. 在创建自动布局约束时要多加小心
  2. viewDidLayoutSubviews方法中启用表格视图的行高估算。

    self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = 44.0; // 设置为你的“平均”单元高度


这是对一个旧问题的晚回答。如果您认为这个问题是重复的,应该标记为重复。 - JAL

-2
你可以使用这段代码来改变不同tableview的高度。
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(tableView == tableView1) 
    {
        return 55;
    }
    else if(tableView == tableView2)
    {
        return 75;
    }
}

这可能会对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接