在UITableView中的动画期间的白色空间

时间:2015-07-17 18:49:55

标签: ios objective-c uitableview

在我的tableView中,我想用动画扩展单元格的高度。它有效,但是当我推它时,扩展单元和另一个单元之间有空白。 动画选项

会发生这种情况
UIViewAnimationOptionCurveEaseIn
UIViewAnimationOptionCurveEaseOut
UIViewAnimationOptionCurveLinear

且只有

UIViewAnimationOptionCurveEaseInOut

没问题。

您可以在此video中看到它。 有人可以解释为什么会发生或提出另一种解决方案?谢谢。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    if ([self isSelectedCell:indexPath]) {
        return self.heightCellAnimation;
    }
    return HeightCommonCell;
}

- (void)changeHeightCellFor:(NSIndexPath *)indexPath inTableView:(UITableView*) tableView
{
    self.indexPathSelectedCell = indexPath;


    [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
        [self.tableView beginUpdates];

        self.heightCellAnimation = [self getHeightForCurrentScrollView] + HeightCommonCell;
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

        cell.frame = CGRectMake(cell.frame.origin.x,
                                cell.frame.origin.y,
                                cell.frame.size.width,
                                self.heightCellAnimation);

        self.heighSelectedCell = indexPath.row;

        [self.tableView endUpdates];

    } completion:^(BOOL finished) {


    }];
}

1 个答案:

答案 0 :(得分:0)

也许是因为Apple使用UIViewAnimationOptionCurveEaseInOut来制作tableView的动画,因此一旦您使用相同的选项,动画就会显示 ok