Обработка касаний
(c) Nikita Kultin, 2013.
В зависимости от задачи для обработки касания можно использовать UITapGestureRecognizer, UIPanGestureRecognizer и др.
UITapGesture Recognizer позволяет обработать простое касание одним или несколькими пальцами,
UIPanGestureRecognizer - сделать обработку движения, например вида "нажать-переместить-отпустить".
Пример: обработка перемещения пальца на ImageView
0. Установить в выбранное состояние флажок User Interaction Enabled компонента imageView1
1. Объявить в контроллере
CGPoint startPoint;
CGPoint endPoint;
2. Поместиь в контроллер объявление обработчика
// обработчик для imageView1
- (void)handleSinglePan:(UITapGestureRecognizer *)recognizer {
if (recognizer.state == UIGestureRecognizerStateBegan)
{
// запомнить точку касания
startPoint = [recognizer locationInView:self.view];
endPoint = startPoint;
}
if (recognizer.state == UIGestureRecognizerStateChanged)
{
NSLog(@"Changed");
}
if (recognizer.state == UIGestureRecognizerStateEnded)
{
endPoint = [recognizer locationInView:self.view];
float dx = endPoint.x - startPoint.x;
float dy = endPoint.y - startPoint.y;
//NSLog(@"%@ %f %f",recognizer.description, dx, dy);
if (dx > 0)
{
NSLog(@"NEXT");
}
else
{
NSLog(@"PREV");
}
}
}
3, Задать обработчик для ImageView
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// создать обработчик Pan-касания
UIPanGestureRecognizer *singleFingerPan = [[UIPanGestureRecognizer alloc] initWithTarget:self action: @selector(handleSinglePan:)];
// задать обработчик для объекта
[imageView1 addGestureRecognizer:singleFingerPan]; // ВНИМАНИЕ! Установить флажок User Interaction Enabled
}