[英]UIScrollview, Move down responder chain
我会尽量保持简单。
我有一个UIScrollview附带大约10张图像。 我目前拥有它,以便可以触摸图像并将其在滚动视图上拖动。
我是通过创建子类UIImageview并实现touchesMoved等来实现的。我仍然可以很好地滚动视图,但是尝试过快拖动图像时会出现问题。 程序似乎首先检查视图是否正在滚动,然后在UIImage类中触发touchesMoved。
无论如何,我可以进行切换,以便首先检查是否触摸了图像,如果没有,则将响应传递到滚动视图。
任何帮助都会很棒。 谢谢。
最简单的方法是用一根手指移动图像,用两根手指滚动视图。
如果您使用的是iOS 5,这非常简单:
self.scrollView.panGestureRecognizer.minimumNumberOfTouches = 2;
如果要支持旧版本的iOS,则需要做更多的工作:
for (UIGestureRecognizer *gesture in self.scrollView.gestureRecognizers){
if ([gesture isKindOfClass:[UIPanGestureRecognizer class]]){
((UIPanGestureRecognizer *)gesture).minimumNumberOfTouches = 2;
}
}
如果您想同时使用单指手势,则有几种方法可以使用。 您可以将UIPanGestureRecognizer
附加到每个图像视图。 您可能需要使用requireGestureRecognizerToFail:
消息告诉滚动视图自己的UIPanGestureRecognizer
推迟到图像视图识别器。
另一种方法是将滚动视图的UIPanGestureRecognizer
的委托设置为您创建的对象,该对象实现了gestureRecognizer:shouldReceiveTouch:
方法。 通过这种方法,您可以检查触摸的视图是否是您的图像视图之一。 如果是这样,则返回NO
以防止激活滚动视图的平移手势识别器。
您的问题让我有些困惑,但是我假设您有一个UIScrollView,其中包含10个要拖动的UIImageViews。
我的建议是使用附加到每个UIIImageView的手势识别器(UIPanGestureRecognizer),以实现拖动行为。 我发现手势识别器对于这种行为是一种更可靠的方法。
如果您不知道如何使用手势识别器,我可以发布一个简短的代码示例来演示如何拖动任何类型的UIView。 只要在评论中提问,我就会写出来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.