问题标签 [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 回答
1785 浏览

objective-c - 使用 UIPinchGestureRecognizer 更改圆的大小

我在屏幕中央画了一个简单的圆圈:

使用捏合手势,我允许用户增加/减少形状的半径:

但是,圆圈​​不会停留在死点。相反,它会在中间反弹,直到手势完成才稳定下来。

有谁知道为什么会发生这种情况,如果是这样,我该如何预防?

0 投票
2 回答
458 浏览

ios - iOS中常用于模糊图像的圆形白色捏手势叠加

我已经使用捏合手势在我的 iOS 应用程序中实现了模糊图像的功能,但是我想实现一个圆形的白色叠加层,它通常用作捏合手势的参考点,以便用户可以调整模糊量。就像下图一样:

示例白色捏手势叠加

上图来自:https ://media.tumblr.com/tumblr_lutwauVUW31qm4rc3.png

如何实现此功能?

谢谢!

0 投票
1 回答
314 浏览

objective-c - UIPinchGestureRecognizer 缩放所有视图

在我的项目中,我有一个 UIImageVIew,用户在其中导入背景,然后在该背景上放置较小的图片。

我只想将手势应用于被点击的较小图片。我使用的手势是点击、长按、平移和捏合手势。我的问题只是捏手势。我可以单独应用长按、点击和平移,但可以捏合,不仅可以缩放较小的图片,还可以缩放背景。知道如何解决这个问题吗?

在我的 - (void)viewDidLoad 我已经设置:

然后,

0 投票
1 回答
1675 浏览

objective-c - 为捏合手势设置 UIScrollView 的原点

我正在创建一个滚动视图来显示一个非常大的视图,并且我需要滚动和缩放功能(就像图像查看器一样)。以下是我已采取的步骤:

  1. 在界面生成器中,我将滚动查看器放入视图控制器。
  2. 我在滚动查看器中添加了捏合手势识别器。
  3. 我已将手势识别器的操作连接到处理手势事件的代码。
  4. 加载视图控制器后,我将视图的原点更改为中心(viewer是我的滚动查看器):self.viewer.contentOffset = CGPointMake(384, 512);
  5. 在我的处理程序代码中,我这样处理事件:

startScale一开始是1.0)

当我运行应用程序时,手势被识别并且缩放工作正常,但是,整个视图相对于0,0屏幕的点(左上角)进行缩放。我希望它相对于我正在应用手势的中间点进行缩放,就像放大照片的自然捏合手势一样。

我也尝试过设置self.viewer.frame原点,但没有任何改变。我搜索了这个问题并发现了这些:

如何设置 UIView 的原点参考?(已经尝试过)

https://stackoverflow.com/questions/13163279/pinch-punch-gestures-center(关于我的问题,但未答复)

UIPinchGestureRecognizer 用于在 xcode 中缩放和平移图像(看起来有点矫枉过正,对我来说太复杂了,我不确定这是否真的有助于我的情况)

如何使用滚动视图实现自然捏合,我做错了什么?

谢谢,坎。

0 投票
2 回答
1327 浏览

objective-c - 仅使用捏合手势增加高度或宽度

可能重复:
使用 UIPinchGestureRecognizer 在单方向缩放 uiview

我的代码如下:

}

但问题是,当我执行 Zoomin 或 Zoomout 时,查看分布在整个屏幕上,禁用后请查看我的代码并告诉我出了什么问题。

请在这个问题上帮助我,我提前表示感谢。

0 投票
5 回答
8652 浏览

iphone - iOS:用捏合缩放 UITextView?

我有兴趣创建UITextView在键入文本时动态扩展的内容,并在用户捏住屏幕时进行缩放(在 TinyPost 中可以找到类似的行为)。

当您只需键入(不捏)时,textView 会很好地展开。当你只是捏(不打字)时工作正常,但是当你捏然后打字时,里面的文字会被剪掉。

这是我的代码:

你怎么看?

0 投票
2 回答
2290 浏览

ios - UIPinchGestureRecognizer 选择器未在 UIImageView 上被调用

几个小时以来,我一直试图弄清楚这一点,在这里完全不知所措。我正在尝试为UIPinchGestureRecognizer我的游戏中的一些自定义 UIImageViews 实现一个,但它不起作用。我研究过的所有东西都说它应该有效,但它没有。如果我将它添加到我的视图控制器或自定义 UIView,而不是 UIImageViews,则 Pinch 可以正常工作。我已经尝试了所有常见的修复和调整,但没有成功。我有userInteractionEnabledmultipleTouchEnabled设置为YES。我已经正确设置了委托和选择器。我已shouldRecognizeSimultaneouslyWithGestureRecognizer设置返回 YES。

手势识别器被添加到 UIImageView 中,稍后我可以在更新循环中访问它的属性,但是当我尝试捏合时,选择器中的 NSLog 永远不会被 UIImageView 调用。我已经调整了视图的 z 位置以确保它们在顶部但没有骰子。

我的 UIImageViews 存储在 NSMutableDictionary 中,并在游戏的每个更新循环期间通过循环进行更新。这会对不调用 UIPinchGestureRecognizer 产生影响吗?...我想不出其他任何东西,发布代码可能无济于事 - 因为相同的代码在用于 UIView 或视图控制器时有效。

我在视图控制器的 touchesBegan 和 touchMoved 事件中确实有触摸处理代码......但我已经关闭了它,但问题仍然存在,并且无论如何,捏对其他元素都有效。

有什么想法可以阻止手势选择器在 UIImageView 上触发?词典?与在游戏循环中不断更新有关吗?欢迎任何想法,这似乎很容易实现......

编辑:这是 UIImageView 的代码以及我正在用它做什么......不确定这是否有帮助。

扩展 UIImageView 类 Paper.m(prp 是struct用于初始化我的自定义变量的属性之一:

然后我有一个名为 ObjManager 的自定义类,它包含 NSMutableDictionary 并像这样初始化所有 UIImageView 对象,其中在循环中调用 addObj 以添加每个对象:

我的视图控制器调用 ObjManager 的初始化(在我的 VC 中称为 _world)。然后它像这样循环遍历 _world:

_eachPiece 是我的视图控制器中的一个对象,在 .h 文件中声明(与 _world 一样):

然后我有一个 NSTimer 对象,它每帧更新 _world (ObjManager) 中的所有可移动 Paper 对象(UIImageViews),如下所示:

和捏选择器:

据我所知,捏应该起作用。如果我采用相同的捏合手势代码并将其设置为添加到视图控制器,它适用于整个视图。我还有一个自定义 UIView 类,它充当边框(只是在视图周围绘制一个矩形),并将捏合手势代码移动到该类允许我只捏合边框。

0 投票
1 回答
961 浏览

ios - iOS UIPinchGestureRecognizer 在 UIGestureRecognizerStateEnded 状态下与未知源发生偏移

我有一个带有自定义 drawRect() 方法的 UIView,用于一些绘图。

我使用 UIPinchGestureRecognizer 来实现缩放效果。

这是动作方法:

收到UIGestureRecognizerStateEnded消息时,我得到一些奇怪的坐标偏移:

...和免费翻译:) 我不需要。我不知道翻译从何而来。

如何禁用此翻译?

0 投票
1 回答
1843 浏览

objective-c - 如何使用捏缩放(UIPinchGestureRecognizer)来改变 UIView 的宽度

我可以让UIPinchGestureRecognizer处理程序使用缩放对象,但我不想缩放我想更改大小。例如,我有一个UIView并且我已经攻击了一个UIPinchGestureRecognizer手势,如果用户捏我想改变宽度UIView以匹配捏。我不想缩放它所以UIView更大(缩放)

0 投票
1 回答
1781 浏览

ios - 三指捏合手势

我在尝试实现 3 指捏合时遇到了一些问题。

我一直在单独使用 2 指捏和 2 指旋转!(不需要或想要同时手势)问题是很多时候,系统识别出错误的动作,因为它们非常相似,所以我最终不得不移开手指并再次按下以尝试让系统识别旋转(通常它首先识别夹点)

我进行了很多搜索以查看是否有delayBegin帮助,或者我是否可以做一些激活同时手势的操作,但没有一个可以正常工作,所以我的想法是不要使用 2 个手指捏,我可以使用 3 个(因为它更容易捏比旋转)。

问题是,如您所知,Pinch 仅适用于 2 个手指。所以我决定我可以子类化UIPinchGestureReconizer并只允许它在屏幕上有 3 个手指时工作。其余的它可以像标准捏合一样工作,即使忽略无名指(计算比例)但确保无名指仍在屏幕上。

所以我为我的ThreeFingerPinchRecognizer(那个子类UIPinchGestureRecognizer)尝试了以下实现

因此,如您所见,我正在尝试获得与 2 指捏持相同的功能(通过仅调用[super]函数,并且在touchesBeganandtouchesMoved函数中,我正在测试屏幕上是否有 3 个手指(通过查看event.alltouches.count)

有了这个,两根手指的旋转效果很好,但是捏的效果不是很好,很难激活它,当它激活时,它不能像两指捏一样工作......

我知道我可能做错了,所以任何帮助都会很棒!

非常感谢!