我的表格视图中有两个自定义UITableViewCell
,我无法正常调整大小。问题是在IB中,表视图有一个行高选项,它为两个单元设置相同的高度。我不能仅仅编辑IB中单元格的高度,为什么它不起作用,表格视图的行高会覆盖它。我使用的是静态高度,因此我尝试根据单元格的类型进行设置,但无法使其正常工作。是否有可能只是我的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;
}
}
答案 0 :(得分:2)
你绝对可以这样做,你会在你怀疑的-heightForRowAtIndexPath中这样做。
您应该使用IndexPath来确定存在哪种类型的单元格,然后返回该单元格类型的正确高度,而不是尝试按原样加载单元格。
在你的cellForRowAtIndexPath方法中,你必须有一些逻辑已经确定给定IndexPath的单元格类型,因为你已经从该方法返回不同类型的Cell?可以使用相同的逻辑在heightForRowAtIndexPath方法中返回适当的高度。