Я хотел бы обработать жест поворота в моем приложении для iPhone и при этом повернуть 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 радианам.
Любые предложения приветствуются. Спасибо!