Распознаватель движения слайдов iphone
Я разрабатываю новое приложение, и мне нужно реализовать функциональность, которая часто используется во многих приложениях. Я хочу реализовать функции "следующая страница" / "предыдущая страница" скользящим жестом соответственно слева направо для случая "следующая страница" и справа налево в другом. Я видел кое-что о GestureRecognizer, которое, возможно, может мне помочь, но, к сожалению, я разрабатываю версию 3.1.2 прошивки, и она пока не поддерживается. Любое предложение или ссылка с любым учебником?
Спасибо
2 ответа
Чтобы ответить на ваш вопрос с помощью некоторого кода, это моя версия отличного примера, приведенного в этой теме.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = touches.anyObject;
//Define "CGPoint startTouchPosition;" in your header
startTouchPosition = [touch locationInView:self];
[super touchesBegan:touches withEvent:event];
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = touches.anyObject;
CGPoint currentTouchPosition = [touch locationInView:self];
// If the swipe tracks correctly.
double diffx = startTouchPosition.x - currentTouchPosition.x + 0.1;
double diffy = startTouchPosition.y - currentTouchPosition.y + 0.1;
//If the finger moved far enough: swipe
if(abs(diffx / diffy) > 1 && abs(diffx) > 100)
{
if (!swipeHandled) {
[self respondToSwipe];
//Define "bool swipeHandled;" in your header
swipeHandled = true;
}
}
[super touchesMoved:touches withEvent:event];
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
swipeHandled = true;
[super touchesEnded:touches withEvent:event];
}
Посмотрите на мой код:
UISwipeGestureRecognizer * swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget: self action: @selector (myFunction)]; [swipeRecognizer setDirection: UISwipeGestureRecognizerDirectionRight]; [view addGestureRecognizer: [autoRelease swipeRecognizer] ];
Вы можете изменить направление удара и т. Д.;
Изменить: о, я не видел конец вашего вопроса: p Так что вы должны реализовать UIView и обнаружить touchesBegan и touchesEnd, сохранить начало и конец CGPoint и решить, является ли это пролистыванием или остановкой;)