- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当使用 moveRowAtIndexPath:toIndexPath:
移动 UITableViewCell
时,我在使用 estimatedRowHeight
和 UITableViewAutomaticDimension 时看到动画故障
当单元格从可见状态变为不可见状态时。
如果我通过实现 tableView:heightForRowAtIndexPath:
明确设置单元格的高度,问题就会消失。仅当源索引路径和目标索引路径分别可见和不可见时,才会出现此问题。当单元格移动到另一个可见的索引路径时,动画会按预期运行。
我创建了一个示例项目来说明效果:https://github.com/timarnold/Table-Cell-Sizing-Bug
http://www.openradar.me/19156703
@rdelmar 指出我的问题实际上并没有提出问题。
有谁知道解决此错误并修复此行为的方法?还是我做错了什么?
我使用 Apple 提供的一张开发人员支持票向 Apple 询问了这个问题。他们确认这是一个错误(访问 http://www.openradar.me/19156703 进行欺骗)并且没有提供任何解决方法。
最佳答案
尝试缓存像元高度。
private var cellHeights = [NSIndexPath: CGFloat]()
override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if let cachedHeight = cellHeights[indexPath] {
return cachedHeight
} else {
return 60
}
}
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cellHeights[indexPath] = cell.frame.height
}
关于ios - 使用 `moveRowAtIndexPath:toIndexPath:` 和 `estimatedRowHeight` 时 `UITableViewAutomaticDimension` 中的 UITableViewCell 动画错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27319719/
iOS 5 最终为 UITableView 添加了 moveRowAtIndexPath:toIndexPath: 方法。问题是,调用它只会移动行,不会更新/重绘它。唯一的方法似乎是找到单元格并直接调
我有一个tableview,其中包含两个部分:要购买的成分和用户已经拥有的成分。因此,基本上,当使用购物时,他/她会将一种成分从一个列表传递到另一个列表。 这里是tableView:cellForRo
在我的 UITableView 中,我有这种关系 Department -< Employees (名称数组) 我已经为每个模型设置了自定义对象。 在我的 moveRowAtIndexPath ,我可
我需要 UITableview 方面的帮助,特别是 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath
我有一个字符串数组,已经在我的 uitableview 中显示了。 当为我的uitableview启用编辑时,我试图将字符串从第四行移动到第三行,当我调试它时,我在代码索引部分的插入对象中得到EXC_
我有一个 UITableView我将一行从可见滚动区域外移动到 UITableView 的顶部.动画按预期工作,但最终显示了以前索引 0 处的重复单元格。 代码看起来像这样,除了硬编码的索引: [se
我有一个 UITableViewController 显示动态表格数据,最后一行(使用单独的单元格原型(prototype))包含一个“添加”按钮。 我希望用户能够对表格行重新排序,但阻止他们将行移动
有什么方法可以在-[UITableView moveRowAtIndexPath:toIndexPath]期间执行的动画完成后执行方法? 即,我希望 TableView 以动画方式将单元格移动到其新的
我有一个简单的 UITableView Controller ,用于显示 CoreData。我正在尝试实现 - (void)tableView:(UITableView *)tableView mov
我有一个包含 7 个 TableView 的 View ,代表一周中的 7 天。每个 tableView 都使用 0 到 6 的标签进行初始化。我在单元格中创建了一个 longPressure 识别器
我需要在 UITableView 按钮的 didSelectRowAtIndexPath 和 moveRowAtIndexPath 方法之间进行检测,但我发现当我设置 [myTableView set
在我的应用程序中,我使用了一个填充有核心数据对象的 UITableView。我想让改变单元格的顺序成为可能。所以我实现了 -(BOOL)tableView:(UITableView *)tableVi
我实现了 moveRowAtIndexPath:toIndexPath: 方法的主体,如下所示: - (void)tableView:(UITableView *)tableView moveRowA
好的,我正在制作一个待办事项列表应用程序。我只是想知道如何正确使用 moveRowAtIndexPath:toIndexPath:,因为如果 toDoItemCompleted 方法被触发,它会一直崩
目前我在我的自定义表格 View 中显示了一个简单的对象数组,我也使用了SwipyCell测试滑动手势。 然后我尝试使用 moveRowAtIndexPath 对对象重新排序,但是由于某些原因它不适用
在我的 UITableView 中,我有一个特定的单元格 (A),其外观取决于同一部分中所有其他单元格的顺序。因此,每当用户将单元格拖动到表格 View 中的新位置时,我都需要更新单元格 (A) 的内
我在 Swift iOS 应用程序中有一个 tableView,它允许用户对行重新排序。点击“编辑”按钮,可以重新排序或删除行,然后再次点击“编辑”按钮(现在显示为“完成”)以完成该过程。 如果我只是
当我移动其他单元格时,我需要保持我的第一个单元格始终位于 tableview 的顶部。我花了很多时间和多种方式按钮,我还没有弄清楚如何解决这个问题。 这是我的代码: -(UITableViewCell
我想使用 iOS 5 漂亮的行移动调用来为 TableView 设置动画以匹配某些模型状态更改,而不是旧式的删除和插入。 更改可能包括重新排序和就地更新,我想为两者设置动画,因此某些行将需要 relo
当使用 moveRowAtIndexPath:toIndexPath: 移动 UITableViewCell 时,我在使用 estimatedRowHeight 和 UITableViewAutoma
我是一名优秀的程序员,十分优秀!