有什么方法可以检测 iPhone 中任意角度的滑动吗?UISwipeGestureRecognizer
好像只有4个方向。
如果我像这样滑动:
\
\
\
X
我希望它能给我大约 60 度的角度,而不是像UISwipeGestureRecognizer
.
我怎样才能做到这一点?
您可以使用UIPanGestureRecognizer
。当您检测到 Ended 状态时,您可以获得速度。速度分为 x 和 y 分量。您可以使用 x 和 y 分量来计算斜率 m。
m = Δy / Δx
由斜率 m 定义的线 ???? 相对于 x 轴的角度定义如下:
???? = arctan(m)
就像是:
- (void)didPan:(UIPanGestureRecognizer*)recognizer {
switch (recognizer.state) {
case UIGestureRecognizerStateBegan:
...
break;
case UIGestureRecognizerStateEnded:
CGPoint velocity = [recognizer velocityInView:[recognizer.view superview]];
// If needed: CGFloat slope = velocity.y / velocity.x;
CGFloat angle = atan2f(velocity.y, velocity.x);
...
break;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)