找捏手势的点

Posted

技术标签:

【中文标题】找捏手势的点【英文标题】:Find points of Pinch Gesture 【发布时间】:2012-04-25 05:04:01 【问题描述】:

我对 UIGestures 很熟悉,但这种特殊的需求让我碰壁了。

问题:如何找到 UIPinchGesture 的起始两点和结束两点?

我必须得到所有这四个点,并且必须在服务器端进行一些计算。

以前有人试过吗?

【问题讨论】:

【参考方案1】:

使用

- (CGPoint)locationOfTouch:(NSUInteger)touchIndex inView:(UIView *)view

喜欢

[gesture locationOfTouch:0 inView:youView]; //first
[gesture locationOfTouch:1 inView:youView]; //second

【讨论】:

很抱歉。直到我在设备中运行这段代码,一切都很好,我很高兴。但它设备它有一些 sigAbrts。对于 UIPinchGesture UITouch[2] 是通常的值,它是只读的(即没有设置器)。但是当我在 1 处访问索引时,XCode 会说:“超出范围”。 :( 你应该先检查 [gesture numberOfTouches] ,但 PinchGesture 必须有 2 个点 我正在尝试这种方式并且它可以工作,但是当我将手指放在屏幕上时,我的应用程序在带有 SIGABRT 的locationOfTouch:inView: 行崩溃,并且没有消息。知道为什么吗? 非常感谢朋友。像魅力一样工作【参考方案2】:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

UITouch *touchPositionOne = [[[event allTouches] allObjects] objectAtIndex:0];
UITouch *touchPositionTwo = [[[event allTouches] allObjects] objectAtIndex:1];
CGPoint fps = [touchPositionOne locationInView:self.imageView];
CGPoint sps = [touchPositionTwo locationInView:self.imageView];

NSLog(@"%@ %@", NSStringFromCGPoint(fps), NSStringFromCGPoint(sps));



- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

UITouch *touchPositionOne = [[[event allTouches] allObjects] objectAtIndex:0];
UITouch *touchPositionTwo = [[[event allTouches] allObjects] objectAtIndex:1];
CGPoint fps = [touchPositionOne locationInView:self.imageView];
CGPoint sps = [touchPositionTwo locationInView:self.imageView];

NSLog(@"%@ %@", NSStringFromCGPoint(fps), NSStringFromCGPoint(sps));

【讨论】:

【参考方案3】:
CGPoint point1 = [gestureRecognizer locationOfTouch:0 inView:piece];
CGPoint point2 = [gestureRecognizer locationOfTouch:1 inView:piece];
CGPoint center = [gestureRecognizer locationInView:piece];

【讨论】:

谢谢。但我早就想出了一个解决方案。请在上面找到答案。【参考方案4】:

我认为在 XCode 12 中您可以使用 location(ofTouch:, in:) 来识别点的位置:

print(sender.location(ofTouch: 0, in: view))
print(sender.location(ofTouch: 1, in: view))

【讨论】:

以上是关于找捏手势的点的主要内容,如果未能解决你的问题,请参考以下文章

我可以禁用UIPageViewController的页面边框手势识别器吗?刷卡一个?

iOS Swift - 使点击手势识别器在视图下工作

通过html5 touch事件封装手势识别组件

使用 rollup 打包一个原生 js + canvas 实现的移动端手势解锁功能组件

UIScrollView 在不正确的点上缩放

RobotFramework:App九宫格滑动解锁