我已经直接在库的github页面(https://github.com/lxcid/LXReorderableCollectionViewFlowLayout/issues/43)上发布了这个问题,但我想我会在这里获得更多曝光。
我按如下方式实现了库:
LXReorderableCollectionViewFlowLayout *layout = [[LXReorderableCollectionViewFlowLayout alloc] init];
[collection setCollectionViewLayout:layout];
其中collection是我手动转到的UIViewController中的UICollectionView。使用itemAtIndexPath:fromIndexPath willMoveToIndexPath:toIndexPath函数,拖放和重新排序工作正常。
但是,只要我解除视图控制器:
[self dismissViewControllerAnimated:YES completion:nil];
我遇到线程1:EXEC_BAD_ACCESS(code = 1)错误。
此处发生错误:
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
和bt显示:
frame #0: 0x019130b2 libobjc.A.dylib`objc_msgSend + 14
frame #1: 0x01bab735 CoreFoundation`-[NSSet makeObjectsPerformSelector:withObject:] + 277
frame #2: 0x0087f902 UIKit`-[UIGestureRecognizer dealloc] + 127
frame #3: 0x008952a5 UIKit`-[UILongPressGestureRecognizer dealloc] + 174
其他人遇到的类似问题(https://github.com/lxcid/LXReorderableCollectionViewFlowLayout/issues/32)有回复:
发生崩溃是因为从集合视图中删除布局时,永远不会删除已在集合视图上设置的手势识别器。因此,当手势发生时,识别器会尝试在已经解除分配的布局上调用委托方法gestureRecognizerShouldBegin:。
但我不确定这意味着什么或如何解决它,如果它是同一个问题。
非常感谢任何帮助。
答案 0 :(得分:0)
我仍然不确定是什么导致这种情况,但我通过更改为github源而不是使用cocoapods解决了这个问题。我的cocoapod版本是0.1.0.beta1(我从https://www.cocoacontrols.com/controls/lxreorderablecollectionviewflowlayout获得),我猜它已经过时了。