UITableView - BeginUpdates / EndUpdates动画设置

时间:2014-05-19 22:12:11

标签: ios objective-c uitableview uiview uianimation

我正在构建一个UITableView,其中的单元格会滑出"滑出"选中以下附加视图。为此,我使用[tableview beginUpdates][tableView endUpdates]为表格视图中的行高设置了动画,然后我将动画滑动视图与该动画一起翻译为&#c&# 39;被揭露。我使用的动画效果相当不错,但与行高的移动方式略有不同。

例如,这是我的手机。通常情况下,只显示白色部分(由于突出显示而呈蓝色),但如果选择一行,灰色视图会从底部滑出,就像该行的操作菜单中有几个按钮一样:

enter image description here

我想知道的是:默认情况下,表格视图BeginUpdates / EndUpdates方法使用的动画设置是什么,或者如果不知道,是否存在无论如何我可以将它们设置为自定义因此我的行高和滑动视图的动画完全相同?

tableView方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if ([[tableView indexPathForSelectedRow] isEqual:indexPath])
        return CellHeightAlternate;
    return CellHeightNormal;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    SlideOutViewTableViewCell *newCell  = (SlideOutViewTableViewCell *)[tableView cellForRowAtIndexPath:indexPath];

    [tableView beginUpdates];
    [tableView endUpdates];

    [newCell showView];
}

SlideOutTableViewCell showView方法:

- (void)showView{
    [self.slideoutView setFrame:CGRectMake(self.slideoutView.frame.origin.x, 40, self.slideoutView.frame.size.width, self.slideoutView.frame.size.height)];
    [UIView animateWithDuration:.25 animations:^{
        [self.slideoutView setFrame:CGRectMake(self.slideoutView.frame.origin.x, 70, self.slideoutView.frame.size.width, self.slideoutView.frame.size.height)];

    }];
}

1 个答案:

答案 0 :(得分:3)

所以我通过反复试验找到答案:

表格视图更改行高度的动画(来自[tableview beginUpdates][tableView endUpdates]方法)是一个线性动画(没有动画效果),持续时间为.3秒。