Окончание UIGestureRecognizer

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

Любые предложения приветствуются. Спасибо!

12
задан Infinite Possibilities 9 February 2011 в 23:03
поделиться