objective-c - 捏 UIScrollView 时发生奇怪的崩溃

标签 objective-c ios uiscrollview uigesturerecognizer uipinchgesturerecognizer

在过去的几个小时里,这个问题一直让我发疯。所以我有一个非常简单的 UIScrollView 设置:

-UIScrollView
    -UIImageView

就是这样。 scrollview 和 imageview 在 Storyboard 中生成。现在我想要做的就是能够缩放到这个图像。最小缩放设置为 1,最大缩放设置为 3。 ScrollView 的委托(delegate)设置为我的 RootViewController

在我的 RootViewController 中,我添加了这个功能(需要支持缩放)
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
   return _theImageView;
}

我相信我所做的一切都是正确的,但是每当我捏住 ScrollView 时,我都会得到很棒的 EXE_BAD_ACCESS。我试图到处寻找,但似乎找不到问题。故障转储附在下面
0   libobjc.A.dylib                 0x34b80f7e objc_msgSend + 22
1   UIKit                           0x3516899e -[UIScrollView _getDelegateZoomView] + 70
2   UIKit                           0x351908f2 -[UIScrollView _zoomScaleFromPresentationLayer:] + 22
3   UIKit                           0x3523bf5a -[UIScrollViewPinchGestureRecognizer touchesBegan:withEvent:] + 102
4   UIKit                           0x35102436 -[UIWindow _sendGesturesForEvent:] + 278
5   UIKit                           0x351021ee -[UIWindow sendEvent:] + 82
6   UIKit                           0x350e868e -[UIApplication sendEvent:] + 350
7   UIKit                           0x350e7f34 _UIApplicationHandleEvent + 5820
8   GraphicsServices                0x32c85224 PurpleEventCallback + 876

我究竟做错了什么?

也许我太困了

最佳答案

有类似的问题,通过在 View Controller 的 dealloc 中添加以下内容来解决它:

self.scrollView.delegate = nil;
self.scrollView = nil;

而且我正在使用 ARC,所以它似乎是多余的,但它确实解决了这个问题。
我怀疑这是问题的原因:
@property(nonatomic,assign) id<UIScrollViewDelegate>      delegate;                       // default nil. weak reference

来自 UIScrollView.h文件

关于objective-c - 捏 UIScrollView 时发生奇怪的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917829/

相关文章:

ios - 如何让 segue 在按下按钮时等待函数完成?

ios - UIButton 使 UIScrollView 弹跳

iphone - 嵌套UIScrollView-iPhone照片应用

objective-c - 可以释放一个指针吗?

ios - 当只有一个字典可用时,如何通过一个或多个字典访问for循环中的局部变量?

iphone - 处理大数字

ios - 保持 UIScrollView 滚动到底部

objective-c - UITextFieldTextDidChangeNotification 不会在 ios6 ipad3 上被调用

ios - 当应用程序处于后台时开始播放 MPMusicPlayerController

ios - Ionic 4 - Inappbrowser 无法在 IOS 中加载