Я бы хотел обработать жест вращения в приложении для iPhone и повернуть imageView во время этого. В конце этого жеста я хотел бы повернуть в фиксированную позицию imageView.
То есть если я поворачиваю imageView от 0 радиан до M_PI / 2 радиан, но где-то на полпути я заканчиваю жестом. После окончания я бы хотел проверить угол и, если он близок к M_PI / 2, тогда установить его на M_PI / 2, иначе на 0.
Вот мой код, как я пытался это сделать:
Я создаю и добавляю распознаватель к своему виду.
UIGestureRecognizer *recognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognized:)];
recognizer.delegate = self;
[self addGestureRecognizer:recognizer];
[recognizer release];
Методы делегирования:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if (_imageView) {
return YES;
}
return NO;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
Жест признан метод:
- (void)gestureRecognized:(UIRotationGestureRecognizer *)recognizer {
_imageView.transform = CGAffineTransformMakeRotation(recognizer.rotation);
}
Эти методы работают, но вот метод, которым я пытался получить конец жеста. Это не работает:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"gesture end");
}
Также с преобразованием у меня небольшая проблема. Иногда он возвращается к 0 радиан.
Любое предложение приветствуется. Спасибо!