如何在uitableview上制作固定高度的单元格?
Posted
技术标签:
【中文标题】如何在uitableview上制作固定高度的单元格?【英文标题】:How to make fixed height cell on uitableview? 【发布时间】:2015-05-07 06:31:45 【问题描述】:所以我想制作像 instagram 这样的时间线内容,我在我的 uitableview 上使用自定义单元格。我的问题是我已经在情节提要上将单元格高度设置为 345,但得到的单元格表如下所示:
这是我在故事板上的自定义单元格:
我该如何解决它,这样我才能得到故事板上的结果?
【问题讨论】:
来自 IB 的标记自定义高度选项。并从表格视图属性中设置单元格高度。 我也告诉过你娜塔莎在回答中发布的同样的事情。 【参考方案1】:您遇到此问题的原因是您可能已将自定义 tableview 单元格的行高设置为 345,但在 UITableview 的行高小于 345 时未设置为自定义。所以,您需要做的是到情节提要并选择表格(UITableview)并将其行高设置为最大可能的行高。
假设您将有两种不同的行高。一个为 345,另一个为 325。作为 325
现在,选择自定义表格视图单元格并将其行高设置为自定义,并将其设置为 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.
【讨论】:
【参考方案2】:使用这个delegate
方法:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
return 345
【讨论】:
【参考方案3】:在你的 UITableViewController 子类中,设置self.tableView.rowHeight = 345
。可能是故事板高度未翻译的错误。
【讨论】:
@EgaSetyaPutraself.tableView?.rowHeight = 345
可能你还没有为你的tableview创建一个IBOutlet。上面的代码只有在你有一个连接到 UITableview 并命名为 tableview 的插座时才应该工作。然后在您的 viewdidload 中,您可以使用 self.tableView.rowHeight 访问 rowHeight。【参考方案4】:
您可以在此处设置表格视图单元格的高度。
【讨论】:
@EgaSetyaPutra 从情节提要中选择 Tableview。并设置行高。以上是关于如何在uitableview上制作固定高度的单元格?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用自动布局动态调整具有固定宽度的collectionview单元格高度?
使用 UITableView 的可变高度自定义单元格调用 reloadData 时保持 UITableView 的当前位置
如何在没有重载数据的情况下更改uitableview中的高度单元格