UITableView自定义重新排序崩溃

时间:2013-12-21 17:54:22

标签: objective-c uitableview custom-controls user-experience

我正在开发一个概念,使用户能够在重新排序UITableView的过程中“抛出”单元格(您可以查看Youtube上的简短演示并从{{3}克隆我的回购})我有一个问题,导致我的应用程序崩溃...在第一次投掷之后没有立即 - 它甚至可以在快速挥动之后(在iPhone 4上测试)。

我的工作是:

  1. - tableView: targetIndexPathForMoveFromRowAtIndexPath: toProposedIndexPath:我正在根据此方法调用之间的时间变化和单元格proposedDestinationIndexPath的更改并设置单元格的标记来更改origin.y时考虑计算出的速度移动。
  2. reloadData
  3. - tableView: didEndDisplayingCell: forRowAtIndexPath:并取消设置isMoving标记
  4. 更新模型并取消设置isMoving标志
  5. 应用程序在投掷开始(- tableView: targetIndexPathForMoveFromRowAtIndexPath: toProposedIndexPath:)和降落到目的地(- tableView:moveRowAtIndexPath: toIndexPath:)之间的某处崩溃。

    我怀疑它是因为我在某种程度上扰乱了表视图的内部结构,但是并不真正理解究竟发生了什么,以及如何解决它。原因是:

    *由于未捕获的异常'NSRangeException'而终止应用程序,原因:'* - [__ NSArrayM objectAtIndex:]:索引9超出边界[0 .. 8]'

    事实上,在崩溃时我们可能有11个可见的单元格,但目前只有8个可见(附截图): Sample app in the moment of crash

    如何使其稳定?

0 个答案:

没有答案