iPhone обрабатывает пролистывание пользователем - PullRequest
1 голос
/ 06 декабря 2010

Простой вопрос: как я могу определить, когда пользователь проводит пальцем по экрану iPhone?

Ответы [ 3 ]

3 голосов
/ 06 декабря 2010

Вам необходимо внедрить распознаватель жестов в вашем приложении.

В вашем интерфейсе:

#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

3 голосов
/ 06 декабря 2010

UIGestureRecognizer - это то, что вы хотите. Особенно подкласс UISwipeGestureRecognizer

0 голосов
/ 06 декабря 2010

Ах, я смог ответить на свой вопрос: http://developer.apple.com/library/ios/#samplecode/SimpleGestureRecognizers/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009460

Спасибо за помощь всем!

...