gpt4 book ai didi

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

转载 作者:技术小花猫 更新时间:2023-10-29 10:53:51 27 4
gpt4 key购买 nike

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

enter image description here

问题:调用 deleteRowsAtIndexPaths:withRowAnimation: 产生的动画是不规则的。例如,当我使用底行动画(即 UITableViewRowAnimationBottom)删除屏幕截图中勾选的行(主题 #7)时,会发生以下情况:

  1. 对象 #8 滑到对象 #7 的下方和后面
  2. 对象 #8 短暂地隐藏在对象 #7 后面
  3. 主题 #8 不和谐地替换了主题 #7

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

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

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

详细信息:

我的目标是 iOS 7,并使用 Storyboard、纯自动布局和核心数据。

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

- (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...
}

我尝试过的:

表格单元格子类覆盖 layoutSubviews。但是,即使我注释掉 layoutSubviews,不规则动画仍然存在。

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

按照其他人的建议,我试过在调用 beginUpdatesendUpdates 之间调用 deleteRowsAtIndexPaths:withRowAnimation:。这不能解决问题。

关于下一步做什么的任何建议,或者关于为什么我会看到这些不规则动画的最佳猜测?

更新(iOS 7.1):

针对 iOS 7.1 后问题仍然存在。将继续依赖淡入淡出动画。

最佳答案

尝试调用[self.listOfItems removeObjectsAtIndexes:self.indexSetOfTickedRows];在函数的结尾而不是开头。

关于ios - 来自 UITableView 的 deleteRowsAtIndexPaths :withRowAnimation: 的不规则动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474665/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com