我目前正在使用以下tableView委托方法来调整单个单元格的高度:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat height = 44.0f;
if (self.selectedIndexPath && indexPath.row == self.selectedIndexPath.row){
return height + 20;
}
return height;
}
当调整的单元格不是要显示的最后一个单元格时,此功能正常工作。但是,如果它的最后一个单元格,该函数也会对所有尾随空单元格的高度产生负面影响,如图所示:
不是最后一个单元格(选择用户“bansvsiena”)
最后一个单元格(选择“newregistant” - 注意所有尾随单元格也具有相同的高度)
有没有办法解决这个问题?谢谢!
答案 0 :(得分:2)
您有两种可能的解决方案:
为什么不从所有空单元格中删除分隔符?您可以将UITableView's
分隔符样式设置为single line etched
。这样做不会显示空单元格的分隔符。
设置self.selectedIndexPath
值后(我想你是在tableView:didSelectRowAtIndexPath:
中完成的),你正在重新加载你的表。您可以无效执行此操作并执行以下操作
[_tblCredits reloadRowsAtIndexPaths:@[indexPath, self.selectedIndexPath] withRowAnimation:UITableViewRowAnimationNone];
由于您的所有单元格最初都将以44px高度创建,因此您不会重新加载表格,因此高度仅会因您在数组中传递的行而更改。这种方法更好地重新加载那些需要重新加载而不是整个表的行。
希望这会有所帮助:)