1

这里有一个简单的问题:我如何检测用户何时在 iPhone 屏幕上滑动手指?

4

3 回答 3

3

您需要在应用程序中实现手势识别器。

在您的界面中:

#define kMinimumGestureLength  30
#define kMaximumVariance   5
#import <UIKit/UIKit.h>
@interface *yourView* : UIViewController {
    CGPoint gestureStartPoint;
}
@end

kMinimumGestureLength是手指在算作滑动之前移动的最小距离。kMaximumVariance是手指可以在 y 轴上的起点上方结束的最大距离,以像素为单位。

现在打开您的接口.xib文件并在 IB 中选择您的视图,并确保Multiple Touch已启用View Attributes.

在您的实现中,实现这些方法。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
        UITouch *touch = [touches anyObject];
        gestureStartPoint = [touch locationInView:self.view];
  }

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint currentPosition = [touch locationInView:self.view];    

    CGFloat deltaX = fabsf(gestureStartPoint.x - currentPosition.x);
    CGFloat deltaY = fabsf(gestureStartPoint.y - currentPosition.y);


  if(deltaX >= kMinimumGestureLength && deltaY <= kMaximumVariance){
      //do something 
 }
else if(deltaY >= kMinimumGestureLength && deltaX <= kMaximumVariance){
      //do something
   }
 }

这是实现滑动识别器的一种方法。此外,您真的应该查看有关此主题的文档:

UISwipeGestureRecognizer

于 2010-12-06T18:21:22.290 回答
3

UIGestureRecognizer 就是你想要的。尤其是 UISwipeGestureRecognizer 子类

于 2010-12-06T17:56:06.910 回答
0

啊,我能够回答我自己的问题:http: //developer.apple.com/library/ios/#samplecode/SimpleGestureRecognizers/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009460

感谢大家的帮助!

于 2010-12-06T18:47:41.050 回答