如何在uitableview上制作固定高度的单元格?

时间:2015-05-07 06:31:45

标签: ios iphone uitableview swift

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

celltablescreenshot

这是我在故事板上的自定义单元格:

storyboardss

我该如何解决,所以我可以在故事板上得到结果?

4 个答案:

答案 0 :(得分:29)

您遇到此问题的原因是您可能已将自定义tableview单元格的行高设置为345,但在UITableview的行高小于345时未将其设置为自定义。因此,您需要做的就是去到故事板并选择表(UITableview)并将其行高设置为可能的最大行高。

enter image description here

让我们假设你将有两种不同的行高。一个用345而另一个用325.如325< 345,你将tableview的行高设置为345.

enter image description here

现在,选择自定义tableview单元格并将其行高设置为自定义,并将其设置为345或325.在您的情况下,它将为345。

enter image description here

现在应该很好。

但是,当您具有不同的单元格大小时,更合适的方法是使用委托方法进行行高规范。

- (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.
   }
}

答案 1 :(得分:4)

使用此delegate方法:

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

答案 2 :(得分:2)

在您的UITableViewController子类中,设置self.tableView.rowHeight = 345。可能是故事板高度未被翻译的错误。

答案 3 :(得分:1)

您可以在此处设置表视图单元格高度。

enter image description here