相关疑难解决方法(0)

插入UITableView行而不进行任何动画

[self.tableView insertRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] 
                      withRowAnimation:UITableViewRowAnimationNone];
Run Code Online (Sandbox Code Playgroud)

当我插入的那一行向下滑动每一行时.我希望他们立即跳到新的地方.我不想打电话reloadData从那以后我的所有细胞都会重新绘制.

是否可以删除此动画?

objective-c uitableview ios

19
推荐指数
2
解决办法
9461
查看次数

删除UITableView的最后一行时出现动画问题

更新:现在已在iOS 8.0及更高版本中修复.有关详情,请参阅我接受的答案

我有一个iOS 7 UITableView,我允许在行上滑动删除.我正在处理删除:

tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

附:

[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationTop];
Run Code Online (Sandbox Code Playgroud)

使用正确的动画删除所有行,但表中的最后一行除外.当用户滑动以显示删除按钮,然后点击它时,单元格完全从屏幕向左滑动,但在后面留下一个白色单元格,删除按钮仍在其上十分之几秒,然后突然消失.似乎所有细胞都在发生这种情况,但是所有其他细胞在它们下方都有一排向上滑动,覆盖它.

当有问题的行是表中的唯一行时,甚至会删除整个部分而不是行.部分标题滑动到遗忘状态,但带有删除按钮的白色单元格略微延伸.

我希望这最后一个单元格具有与其他单元格相同的UITableViewRowAnimationTop动画.对于发生了什么的任何想法?

ios7

13
推荐指数
1
解决办法
2728
查看次数

来自UITableView的deleteRowsAtIndexPaths:withRowAnimation的不规则动画:

简介:在编辑模式下,我使用自定义编辑控件删除表视图中的行,而不是默认的红色减号和删除确认按钮.勾选一行或多行,然后点击工具栏中的"删除"按钮.它类似于Mail应用程序中看到的行为.请参见下面的截图.

在此输入图像描述

问题:通过调用产生的动画deleteRowsAtIndexPaths:withRowAnimation:是不规则的.例如,当我使用底部行动画(即UITableViewRowAnimationBottom)删除屏幕截图中的勾选行(主题#7)时会发生什么:

  1. 主题#8在主题#7下方和后方滑动
  2. 主题#8简要隐藏在主题#7后面
  3. 主题#8刺耳地替换主题#7

这在模拟器和设备上都会发生.UITableViewRowAnimationAutomatic当删除上面的主题#7时,自动动画类型(即)会产生相同的不规则行为.

Top动画类型在模拟器中按预期工作,但在设备上产生不一致的,不和谐的动画.

Fade类型动画是唯一在模拟器和设备上按预期工作的动画.

细节:

我的目标是iOS 7,并使用故事板,纯自动布局和核心数据.

这是我删除行的操作方法:

- (void)deleteButtonTapped:(UIBarButton *)sender
{
    // update table view's data
    [self.listOfItems removeObjectsAtIndexes:self.indexSetOfTickedRows];

    // create index paths for ticked rows
    NSMutableArray *indexPaths = [[NSMutableArray alloc] init];

    [self.indexSetOfTickedRows enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
        [indexPaths addObject:[NSIndexPath indexPathForRow:idx inSection:0]];
    }];

    [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationBottom];

    // update Core Data and UI...
}
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

表格单元子类重写layoutSubviews.然而,即使我发表评论,不规则的动画仍然存在layoutSubviews.

我还从表格单元格中删除了自定义可勾选编辑控件,然后对动作方法中特定行的删除进行了硬编码.不规则的动画持续存在.

正如其他人所建议的那样,我试过deleteRowsAtIndexPaths:withRowAnimation:在beginUpdates和之间打电话endUpdates.这不能解决问题. …

animation uitableview ios ios7

11
推荐指数
1
解决办法
2147
查看次数

标签 统计

ios ×2

ios7 ×2

uitableview ×2

animation ×1

objective-c ×1