UICollectionViewCell を遠くにドラッグして削除をトリガーしようとしているときに、大きな問題が発生しています。私が行う方法は、長押しでセルを非表示にし、セルの内容を指で移動する新しい UIView にコピーすることです。UICollectionView に要素が1つしかなく、指で遠くにドラッグして削除をトリガーする場合を除いて機能します。ここに私が得るものがあります:
-[UIViewAnimationContext completionHandler]: message sent to deallocated instance 0xac38660
(lldb) bt
* thread #1: tid = 0x1c03, 0x0307da97 CoreFoundation`___forwarding___ + 295,
stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
frame #0: 0x0307da97 CoreFoundation`___forwarding___ + 295
frame #1: 0x0307d94e CoreFoundation`_CF_forwarding_prep_0 + 14
frame #2: 0x01fab51a UIKit`-[UICollectionView _updateAnimationDidStop:finished:context:] + 1460
frame #3: 0x01ad6d66 UIKit`-[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 237
frame #4: 0x01ad6753 UIKit`+[UIViewAnimationState popAnimationState] + 2353
frame #5: 0x01ae31cc UIKit`+[UIView(Animation) commitAnimations] + 36
frame #6: 0x01faab7f UIKit`-[UICollectionView _updateWithItems:] + 2774
frame #7: 0x01fa7bdb UIKit`-[UICollectionView _endItemAnimations] + 13286
frame #8: 0x01fa460e UIKit`-[UICollectionView _updateRowsAtIndexPaths:updateAction:] + 335
frame #9: 0x01fa467b UIKit`-[UICollectionView deleteItemsAtIndexPaths:] + 48
prepareLayout 呼び出しでセルを非表示にしないことを選択した場合、問題は発生しません。
if ([self.selectedIndexPath isEqual:indexPath]) {
// attributes.hidden = YES;
}
iOS のバグのように見えますが、これは多くの開発者が気付くはずです。修正または回避策は何ですか?