我的 TableView 中有两个自定义 UITableViewCell
,我无法正确调整它们的大小。问题是在 IB 中,表格 View 有一个行高选项,它为两个单元格设置相同的高度。我不能只编辑 IB 中单元格的高度,为什么它不起作用,表格 View 的行高会覆盖它。我使用的是静态高度,所以我尝试根据单元格的类型进行设置,但无法正常工作。有没有可能只是我的 if 语句是错误的,或者我做错了整件事?
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *) indexPath {
InboxCellTableViewCell *cellMessage = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
InboxCell2TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell2" forIndexPath:indexPath];
if(cell) {
[cellMessage layoutIfNeeded];
return 200;
} else {
[cell layoutIfNeeded];
return 155;
}
}
最佳答案
你绝对可以做到这一点,而且你会在 -heightForRowAtIndexPath 中做到这一点,正如你所怀疑的那样。
与其尝试加载单元格,不如使用 IndexPath 来确定那里的单元格类型,然后返回该单元格类型的正确高度。
在您的 cellForRowAtIndexPath 方法中,您必须有一些逻辑已经确定了给定 IndexPath 的单元格类型,因为您已经从该方法返回了不同类型的单元格?可以使用相同的逻辑在 heightForRowAtIndexPath 方法中返回适当的高度。
关于ios - 为两个自定义 UITableViewCell 设置不同的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28753069/