在过去的几个小时里,这个问题一直让我发疯。所以我有一个非常简单的 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/