如何在UITableView上创建固定高度的单元格?

13

我想制作像Instagram一样的时间线内容,我在我的uitableview上使用自定义单元格。 我的问题是,我已经在storyboard上将单元格高度设置为345,但我得到了下面这样的单元格表:

celltablescreenshot

这是我在Storyboard上的自定义单元格:

storyboardss

如何解决这个问题,以便我可以获得与我的storyboard相同的结果?


从IB中标记自定义高度选项。并从表视图属性设置单元格高度。 - Ashok Londhe
我也告诉了你与娜塔莎在答案中发布的相同的事情。 - Ashok Londhe
4个回答

31
您遇到此问题的原因可能是,您将自定义表格视图单元格的行高设置为345,但其未被设置为自定义,而您的UITableview的行高小于345。所以,您需要做的就是进入故事板并选择Table(UITableview),将其行高设置为可能的最大行高。
假设您将具有345和325两种不同行高的单元格。由于325 < 345,因此将表视图的行高设置为345。
现在,选择自定义表格视图单元格,将其行高设置为自定义,并将其设置为345或325。在您的情况下,它将是345。
现在应该没问题了。但是,当您拥有不同大小的单元格时,更合适的方法是使用行高规范的委托方法。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
   if(indexPath.row==0){
      return 345;
   }
   else if(indexPath.row==1){
      return 325;
   }
   else{
      return 300; //a default size if the cell index path is anything other than the 1st or second row.
   }
}

4

使用这个delegate方法:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 345
}

2
在您的UITableViewController子类中,设置 self.tableView.rowHeight = 345。可能是由于故事板高度未被转换而引起的 bug。

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Schemetrical
也许您还没有为您的表格视图创建 IBOutlet。上面的代码只有在您有一个连接到您的 UITableview 并命名为 tableview 的 outlet 时才能工作。然后在您的 viewdidload 中,您可以使用 self.tableView.rowHeight 访问 rowHeight。 - Natasha

1
在这里,您可以设置表视图单元格的高度。

enter image description here


@EgaSetyaPutra 从故事板中选择TableView,并设置行高。 - Ashok Londhe

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