我有一个UITableView
,我已将其连接起来进行编辑。
点击并按住会导致“替换”动画出现(行被“绘制在”表格的其余部分“上方”)。到目前为止,非常好。
但是,移动行超过大约10个像素会导致单元格返回其原始位置,我永远不会将任何行移动到任何其他位置。
断点显示-tableView:moveRowAtIndexPath:toIndexPath:
肯定被调用,尽管索引路径与源行和目标行相同。
任何心灵调试人员都可以对此有所了解吗?
修改 一些更相关的信息:
UILongPressGestureRecognizer
上有一个UITableViewCell
,但是当它包含的表格视图处于编辑模式时,我已经跳过了它的常规行为。
我怀疑这可能与它有关,因为UITableView
重新排序也是由长按引发的。
答案 0 :(得分:2)
可能我为你找到了一个解决方案,但是对于遇到相同行为的其他人来说可能会有所帮助。您遇到的问题是UILongPressGestureRecognizer
干扰了单元格重新排序控制的长按。您可以通过在UILongPressGestureRecognizer
上添加cell.contentView
而不是将其添加到单元格来避免此行为,因为重新排序控制它不在单元格的contentView中。
答案 1 :(得分:0)
移动tableview的单元格时,是否也移动了他们的数据源?
例如,
NSString* stringToBeMoved = [myArray objectAtIndex:[sourceIndexPath row]];
[stringToBeMoved retain];
[myArray removeObjectAtIndex:[sourceIndexPath row]];
[myArray insertObject:stringToBeMoved atIndex:[destinationIndexPath row]];
[stringToBeMoved release];