Rex*_*ids 11 iphone gesture-recognition multi-touch pinch
如何在iPhone上实现捏合手势?我熟悉在iPhone上使用触摸事件,但我非常懒,并且不想重新发明像PINCH手势那样普遍的东西...源代码或其链接会有所帮助.
你需要使用一些基本的数学来自己实现它.
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
Run Code Online (Sandbox Code Playgroud)
这些是您需要在应用程序中实现的委托方法.
您需要获取两次触摸之间的距离,然后计算自己代码中距离的变化.
用于获得距离的数学方程称为点积
我只想指出他们在引用的教程中使用的等式是不正确的.我已将其更新为包含教程中遗漏的绝对值.
这是点积:
- (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;
}
Run Code Online (Sandbox Code Playgroud)
编辑: 我在之前的回答中犯了一个错误......自从我完成了那种数学运算以来已经有一段时间了.
如果你没有平方根结果,你将无法获得点之间的真实距离.这称为计算两个向量之间的大小.
这是正确的方法.如果要省略sqrt,则不会确定两点之间的确切距离.
如果您没有找到答案,那么您的代码将会起作用,但它将使用远大于实际值的测量值.因此,将来如果您需要获得两点之间的距离,它将返回90000而不是实际像素距离(300px).
很确定这里介绍的解决方案已经过时,支持在iOS 3.2及更高版本中使用新的UIPinchGestureRecognizer类.
小智 6
嗯.....似乎有些人对如何使用基本数学非常困惑.点积完全没有问题,只是混淆了问题.2个矢量之间的点prod用于计算它们之间的角度.
你实际上需要使用pythagorus定理.点与点之间的距离没什么关系 - 只有pythagorous!
| 归档时间: |
|
| 查看次数: |
27448 次 |
| 最近记录: |