0

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 のバグのように見えますが、これは多くの開発者が気付くはずです。修正または回避策は何ですか?

4

0 に答える 0