从动画中停止tableFooterView? - iOS

时间:2012-06-01 19:59:11

标签: ios objective-c uitableview cocoa-touch table-footer

我有一个自定义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页脚获得相同的行为,结果相同。我希望有一种简单的方法来覆盖页脚并告诉它不要动画!

0 个答案:

没有答案