如何在iPhone上实现捏手势?我很熟悉在iPhone上使用触摸事件,但我非常懒惰,不想重新发明轮子,使其与PINCH手势一样普遍......源代码或链接将有所帮助。如何在iPhone上捏手势?
回答
你需要自己使用一些基本的数学来实现它。
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
这些是您需要在应用程序中实现的委托方法。
您需要获取两次触摸之间的距离,然后计算您自己代码中的距离变化。
使用获得的距离的数学公式被称为dot product
我只是想指出,他们在引用的教程中使用的公式不正确。 我已将其更新为包含教程中未填的绝对值。
这是点积:
- (CGFloat)distanceBetweenTwoPoints:(CGPoint)fromPoint toPoint:(CGPoint)toPoint
{
float xDist = fromPoint.x - toPoint.x;
float yDist = fromPoint.y - toPoint.y;
float result = sqrt(pow(xDist,2) + pow(yDist,2));
return result;
}
编辑: 我在以前的答案搞错了....它已经有一段时间,因为我做了任何一种数学的。
如果你不平方根结果,你不会得到点之间的真正距离。这被称为计算两个向量之间的大小。
这是正确的做法。如果你想省略sqrt,你将不会有两点之间的确切距离。
如果您不打算答案,您的代码将工作,但它将使用比实际值大得多的测量值。所以在将来如果你需要得到两点之间的距离,它将返回类似90000的东西,而不是实际的像素距离,这将是300px。
嗯......不知道你引用的'点积'链接多少会派上用场,但至少要感谢回复...... – RexOnRoids 2009-07-10 04:01:21
没有它,你无法计算两次触摸之间的距离。这是至关重要的。 – 2009-07-10 04:07:35
Thx - 源代码在这种情况下更容易理解..我没有准备坐下来试图吸收整个wiki页面上复杂的'点积'LOL – RexOnRoids 2009-07-10 04:10:33
如果您正在寻找一个捏合手势的简单代码示例,我使用示例应用程序I describe here(该页面的倒数第二个和最后一个版本)中Brock描述的方法。在这个例子中,捏手势用于缩放一些核心动画层。
他所描述的只是距离计算只是在两点之间应用毕达哥拉斯定理(将X和Y距离作为直角三角形的两个面)。
嗯......似乎有些人对如何使用基本数学非常困惑。点积是完全不相关的,只是混淆了这些问题。两个向量之间的点产品用于计算它们之间的角度。
你实际上需要使用pythagorus定理。点与点之间的距离没有关系 - 只有pythagorous!
很确定这里提出的解决方案已经过时,有利于在iOS 3.2及更高版本中使用新的UIPinchGestureRecognizer类。
- 1. 在cocos2d捏手势,如何?
- 2. 捏捏手势识别器
- 3. 查找捏手势
- 4. Android Touchevent - 捏手势
- 5. 在iPad上的jQuery触发捏手势
- 6. 如何在iphone中完全禁用捏手势?
- 7. 检测在iPhone上开始的捏手势MapView
- 8. 如何防止MPMoviePlayerViewController中捏合手势?
- 9. 捏手势和单触
- 10. 捏手势不会工作
- 11. 捏手势一个手指ios
- 12. iPhone上的复杂手势
- 13. 如何在UIScrollView中使用捏手势识别器?
- 14. 图片+捏手势识别器
- 15. 离子角手势捏崩溃ios
- 16. 捏(缩放)手势不正确缩放
- 17. 客观C改变捏手势视图
- 18. 缩放通过捏手势的UICollectionView
- 19. 捏手势box2d身体/ cocos2d精灵
- 20. 的Flash AS3捏合手势支持
- 21. iPhone UIPickerView手势
- 22. 在iPhone上实现跟踪手势
- 23. iPhone - 在UIPickerView和UIWebView上的手势
- 24. 如何在iPhone SDK中使用手势在屏幕上绘图?
- 25. 如何限制Silverlight WP7中的捏手势?
- 26. 如何使用Android Monkey工具生成缩放/捏手势?
- 27. 如何解释触控板手势捏放大IKImageBrowserView
- 28. 轻扫手势iphone
- 29. 展开图像上的捏手势识别器
- 30. 捏捏手势识别器在第二次缩放时重置图像
看起来这个样品在捏缩放http://cocoabugs.blogspot.com/2011/03/pinch-zoom-using-uipinchgesturerecogniz.html – 2011-03-10 02:47:16