我会尽量保持简单。
我有一个带有大约 10 张图像的 UIScrollview。我目前拥有它,以便我可以触摸图像并将其拖动到 ScrollView 上。
我通过创建子类 UIImageview 和实现 touchesMoved 等来做到这一点。我仍然可以很好地 ScrollView ,但是当尝试过快地拖动图像时会出现问题。程序似乎首先检查 View 是否正在滚动,然后在 UIImage 类中触发 touchesMoved。
无论如何我可以切换它,以便首先检查是否触摸了图像,然后如果没有将响应传递到 ScrollView 。
任何帮助都会很棒。谢谢。
最佳答案
执行此操作的最简单方法是用一根手指移动图像,然后用两根手指 ScrollView 。
如果您使用的是 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
附加到每个 ImageView 。您可能需要使用 requireGestureRecognizerToFail:
消息告诉 ScrollView 自己的 UIPanGestureRecognizer
服从 ImageView 识别器。
另一种方法是将 ScrollView 的 UIPanGestureRecognizer
委托(delegate)设置为您创建的实现 gestureRecognizer:shouldReceiveTouch:
方法的对象。在该方法中,您可以检查触摸 View 是否是您的 ImageView 之一。如果是这样,返回 NO
以防止激活 ScrollView 的平移手势识别器。
关于ios - UIScrollview,向下移动响应链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9311462/