gpt4 book ai didi

iphone - 可缩放 UIScrollView 与 UIButtons 捕获触摸

转载 作者:行者123 更新时间:2023-11-29 04:26:09 25 4
gpt4 key购买 nike

我有一个 UIScrollView 并且正在实现 viewForZoomingInScrollView:委托(delegate)方法返回一个 UIImage,用户可以缩放和平移。我还有一些 UIButtons 作为 UIScrollView 的 subview ,我将其用作注释,例如 Google map 。

我遇到的问题是,当缩小时,许多 UIImage 可能会被 UIButtons 遮挡。当尝试捏合缩放时,UIButtons 正在接收触摸事件,并且缩放没有发生。您最终必须小心地将手指放在清晰的空间中才能进行缩放。

我注意到,当有大量注释 View 时,Google map 应用程序似乎工作正常,您仍然可以捏捏。

我想我需要优先考虑触摸,UIScrollView 需要响应捏合和平移,而按钮只需点击。

有人有这方面的经验吗?

最佳答案

我遇到了这个问题,而且有点奇怪。这不是由于按钮上的任何手势识别器造成的,而是 UIScrollView 的捏合手势识别器由于某种原因被转发到 UIButton。此外,UIButton 响应某些 UIGestureRecognizerDelegate 调用(如 -gestureRecognizerShouldBegin:),但不响应其他调用(如 -gestureRecognizer:shouldReceiveTouch:)。这就像 UIScrollView 有选择地将一些委托(delegate)调用转发到 UIButton,而另一些则不转发。

我终于找到了一个非常简单的方法来解决这个问题:

yourScrollView.pinchGestureRecognizer.delaysTouchesBegan = YES;
yourScrollView.pinchGestureRecognizer.delaysTouchesEnded = YES;

幸运的是,UIScrollView 上的默认捏合手势识别器是可公开访问的,并且默认情况下两个delaysTouches 属性均为NO。当您将它们设置为 YES 时,如果手势识别器可能或确实识别捏合手势,即使它在 UIButton 顶部启动,它也不会将这些触摸转发到 UIButton,并且 UIButtons 将不再干扰 UIScrollView缩放。

关于iphone - 可缩放 UIScrollView 与 UIButtons 捕获触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12319572/

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