问题标签 [uipinchgesturerecognizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
228 浏览

ios - 您需要采取哪些步骤将 UIPanGestureRecognizer 触摸转换为 ScrollView 缩放?

我正在创建一个手势识别器来处理滚动视图的缩放(一次仅沿一个轴滚动)。我有手势识别器工作,但我无法使用来自手势识别器的数据来正确转换我的视图。这就是我现在所做的:

这很好地调整了视图的大小,但是,它让它到达屏幕上的奇怪位置,有时滚动视图将无法一直滚动到它的边缘(它认为它的边界在中间查看某处并反弹回来)。

所以基本上,我的问题是,我需要对其他对象的哪些其他属性进行操作才能使其正常工作?View.transform,ScrollView.contentSize,还有什么?如果只有 Apple 的 UIScrollView 实现文件是开源的 xD

0 投票
1 回答
1751 浏览

objective-c - UIScrollView 捏手势识别器调用什么选择器?

我有一个自定义捏合手势识别器,我正在用它替换 UIScrollView 的捏合手势识别器。假设我希望这个捏合手势识别器的行为与 UIScrollView 的捏合手势识别器完全一样 100%。我可以以某种方式设置手势识别器的选择器来实现这一点吗?

或许像

或者其他的东西?

实际上,我确实希望识别器的行为与 UIScrollView 附带的几乎完全相同,除了在 UIScrollView 中包含的视图中我覆盖 setTransform 并且我想根据此自定义捏识别器中设置的标志来限制转换更改。尝试对 UIScrollView 的捏合手势识别器所做的调用堆栈更高层的所有内容进行逆向/猜测工程已被证明是困难且烦人的。我需要我的自定义识别器对设置一些在 setTransform 中读取的标志的触摸进行一些算术运算,但除此之外,我还想要完全标准的 UIScrollView 捏合行为。

0 投票
1 回答
4745 浏览

ios - 在 UIPinchGestureRecognizer 中查找捏合或捏合

我正在使用UIPinchGestureRecognizer视图,现在我需要知道在我的选择器方法中是执行捏合还是执行捏合。一次其中之一。请给我一些想法来获得这个。谢谢你。

0 投票
3 回答
6509 浏览

ios - 是否有一个手势识别器可以同时处理捏合和平移?

所以我正在使用 iOS 4.2 为我的应用程序添加缩放和平移。我已经实现了 UIPinchGestureRecognizer 和 UIPanGestureRecognizer 的一个实例。在我看来,其中只有一个是一次识别手势。特别是,后者仅在一根手指向下时做出反应,而前者在第二根手指存在时做出反应。没关系,但它有一些副作用,我认为会导致用户体验质量下降。

当您放下两根手指然后移动其中一根时,图像会按应有的方式展开(放大),但手指下方的像素不再位于手指下方。图像从图像的中心缩放,而不是两个手指之间的中点。而那个中心点本身也在移动。我希望该中心点的移动来决定整个图像的平移。

几乎所有 iOS 应用程序都具有相同的行为,即图像围绕图像中心放大或缩小,而不是手指下方的像素跟踪手指?

在我看来,创建自定义手势识别器是解决此问题的正确设计方法,但在我看来,有人会创建这样的识别器以供商业免费下载和使用。有这样的 UIGestureRecognizer 吗?

0 投票
0 回答
11550 浏览

ios - iOS 添加旋转手势和捏/缩放

我正在像这样设置我的识别器。请注意,虽然我将识别器添加到 self.view,但实际上是 self.container 正在被转换(这是一个子视图)。

捏/缩放本身就可以正常工作:

但是我很难添加轮换:

当我添加旋转识别器时,旋转工作但捏/缩放被破坏(从非常小到大的随意跳跃)。我怎样才能解决这个问题,让他们都工作?

0 投票
2 回答
642 浏览

objective-c - 为什么 UIPinchGestureRecognizer 无法接收已结束状态?

我有 4 个手势识别器用于 1 个视图。

我需要处理 UIPinchGestureRecognizer 的结束状态,但有时它的最后一个状态已更改,而不是应如何结束。有人知道为什么吗?我尝试玩 setDelaysTouchesEnded: 但没有:(

0 投票
2 回答
2136 浏览

ios - UIPinchGestureRecognizer在水平和垂直方向上的比例分别是

使用 UIPinchGestureRecognizer 时,分别检测/读取水平和垂直方向的捏合比例的最佳方法是什么?我看到了这个帖子

UIPinchGestureRecognizer 在不同的 x 和 y 方向缩放视图

但我注意到有很多人来回做这样一个看似例行的任务,我不确定这是最好的答案/方式。

如果不为此目的完全使用 UIPinchGestureRecognizer 就是答案,那么在两个不同方向上检测捏合比例的最佳方法是什么?

0 投票
0 回答
226 浏览

xcode - 设备上的捏手势识别器延迟

我在我的应用程序中放了一个捏手势识别器。它在模拟器上运行良好。但是在手势通过和更新之前,设备上有很长的延迟。有什么想法可能导致这种情况吗?这也在新 iPhone 上,所以它不应该是处理速度。

0 投票
1 回答
539 浏览

ios - 使用 UIPinchGestureRecognizer 缩放图层

我将如何使用 UIPinchGestureRecognizer 使用 Transform 来缩放 CALayer(基于现有的变换,图层的当前状态)?

因为规模正在增加,所以它会很快变得很大或非常小。有什么建议么?

0 投票
1 回答
152 浏览

objective-c - 围绕一个点等距创建一组新对象,但基于 uipinchgesture 触摸位置进行旋转

使用捏合手势,我将 sprite/box2d 主体拆分为 n 个形状。我确定使用方法创建形状的位置equidistantPointsOnACircleForMidpoint。我想根据捏合手势的触摸位置 ( touchPoints) 给出的(近似)旋转/移动来移动这些对象。

例如,如果将一个对象分成两个对象,我希望第一个新对象靠近一个手指结束触摸手势的位置,而不仅仅是相对于中点的 0° 和 180°。我不能只将它们放在捏合手势的坐标处,因为创建的新对象的数量从 2 到 10 不等。我已经展示了两个对象的问题,因为这是我能想到的最清晰的示例。

我想对围绕一个圆圈等距放置的点应用旋转,所以起点是第一个捏合手势的位置。这可能就像将第一个点放在圆圈上作为第一个触摸位置一样简单。对于你们中的许多人来说,这可能是基本的数学。这不适合我——我不知所措,这就是我问这个问题的原因。

我有捏手势触摸位置,并且我有同样布局的点 - 我想将两者结合起来;即布局的起点是pinchgesture中的第一个触摸坐标(如图)。

以下是我列出要点的方式:

现在发生了什么事:

在此处输入图像描述

我想要发生的事情: 在此处输入图像描述