我有一个自定义tableFooterView(它只是一个带有渐变的8px高CoreGraphics弧),我在viewDidLoad中使用tableFooterView属性而不是viewForFooterInSection设置。当使用viewForFooterInSection进行设置时,它会在内容到达底部时浮动,而tableFooterView会执行我想要的内容,因为它保持在UITableView的高度。
但是当单元格或表格视图的高度发生变化时,tableFooterView会慢慢地为它们设置动画(大约半秒钟,但它非常明显)。这是非常尴尬的,因为页脚应该看起来像最后一个单元格的扩展。例如,当heightForRowAtIndexPath更改单元格的高度时,tableFooterView类型的ghost会浮动。在此屏幕截图中,底部单元格刚刚缩小到正常大小,页脚向后浮动。
(作为新用户,我无法发布图片,但这里是链接:http://desmond.imageshack.us/Himg835/scaled.php?server=835&filename=iossimulatorscreenshotj.png&res=landing)
(此内容已不再提供,15/9/15)。
当最后一个单元格的高度突然变得比它大时,它也会漂浮在内容上。
任何指针?非常感谢。
编辑:通过高度改变的单元格,我的意思是通过heightForRowAtIndexPath部分:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
Note *currentNote = [self.notes objectAtIndex:indexPath.row];
if (currentNote.associatedCellIsSelected) {
return NORMAL_CELL_FINISHING_HEIGHT*2;
}
return NORMAL_CELL_FINISHING_HEIGHT;
}
编辑2:在didSelectRowAtIndexPath中,我选择了单元格(实际上是单元格的注释),开始/结束更新以及为已选择的行调用reloadRow。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Note *currentNote = [self.notes objectAtIndex:indexPath.row];
if (currentNote.associatedCellIsSelected == FALSE) {
currentNote.associatedCellIsSelected = TRUE;
[tableView beginUpdates];
[tableView endUpdates];
}
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; }
我还确保使用简单的rectColor UIView代替Core Graphics页脚获得相同的行为,结果相同。我希望有一种简单的方法来覆盖页脚并告诉它不要动画!