gpt4 book ai didi

ios - Pan Gesture - 滑动手势冲突

转载 作者:可可西里 更新时间:2023-11-01 01:06:37 26 4
gpt4 key购买 nike

我正在尝试创建一个应用程序来复制 Apple 的照片应用程序 (iPhone) 的缩放、平移和滚动照片图像的功能。 (我也想在查看 pdf 和其他文档时使用相同的控件。)我得到了点击手势来显示/隐藏导航栏和滑动手势来从左到右滚动图像,反之亦然。然后我得到了缩放手势来放大和缩小,但是当我添加平移手势以在缩放图像中四处移动时,滑动手势停止工作。

我在 StackOverflow 的其他地方找到了潜在的解决方案,包括使用 shouldRecognizeSimultaneouslyWithGestureRecognizer,但到目前为止我还没有能够解决冲突。有什么建议吗?

代码如下:

func gestureRecognizer(UIPanGestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer UISwipeGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}

@IBAction func handlePinch(sender: UIPinchGestureRecognizer) {

sender.view!.transform = CGAffineTransformScale(sender.view!.transform, sender.scale, sender.scale)
sender.scale = 1
}

@IBAction func handlePan(sender: UIPanGestureRecognizer) {

self.view.bringSubviewToFront(sender.view!)
var translation = sender.translationInView(self.view)
sender.view!.center = CGPointMake(sender.view!.center.x + translation.x, sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
}

@IBAction func handleSwipeRight(sender: UISwipeGestureRecognizer) {

if (self.index == 0) {
self.index = ((photos.count) - 1);
}
else
{
self.index--;
}

// requireGestureRecognizerToFail(panGesture)

setImage()
}

最佳答案

您不希望 shouldRecognizeSimultaneouslyWithGestureRecognizer:(允许两个手势同时发生)。例如,如果您想要同时捏合和平移,这很有用。但是在您同时平移和滑动的这种情况下,同步手势将无济于事。 (如果有的话,同时识别出这些可能会使情况变得困惑。)

相反,您可能希望使用 requireGestureRecognizerToFail: 建立轻扫和平移手势的优先级(例如,只有在轻扫失败时才平移)。

或者更好的是,完全取消滑动手势而只使用平移手势,如果缩小,这将是一种交互式手势,可以从一个图像导航到下一个图像,如果放大,则平移图像。无论如何,交互式平移手势通常是更令人满意的用户体验;例如,如果从一张照片滑动到下一张照片,则能够停止中间平移手势并返回。如果您查看 Photos.app,它实际上是使用平移手势从一张图像滑动到另一张图像,而不是滑动手势。

关于ios - Pan Gesture - 滑动手势冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com