разработка iphone - UIRotationGestureRecognizer (по часовой стрелке и против часовой стрелки)? - PullRequest
2 голосов
/ 17 июня 2011

Есть ли способ определить, вращение совершено пользователем по часовой стрелке или против часовой стрелки? ???

Я искал это, но не смог найти ответ!

Мой код выглядит так:

 UIGestureRecognizer *recognizer;
 recognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(spin)];
 [self.rotating addGestureRecognizer:recognizer];
 [recognizer release];

Ответы [ 2 ]

4 голосов
/ 17 июня 2011

свойство rotation сообщит вам вращение в радианах. Отрицательное значение указывает на то, что вращение происходит по часовой стрелке, а положительное значение указывает на против часовой стрелки.

Пример:

UIGestureRecognizer *recognizer;
recognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(spin:)];  // <-- Note the colon after the method name
[self.rotating addGestureRecognizer:recognizer];
[recognizer release];

- (void)spin:(UIGestureRecognizer *)gestureRecognizer {
    CGFloat rotation = gestureRecognizer.rotation;
    if (rotation < 0) {
        // clockwise
    } else {
        // counter-clockwise
    }
}
1 голос
/ 07 декабря 2018

Swift версия - представьте, что вы подключили свой UIRotationGestureRecognizer к IBAction и передаете UIRotationGestureRecognizer в качестве аргумента recognizer. Вы можете очень легко проверить направление с помощью следующего:

if recognizer.rotation < 0 {
    print("Negative rotation value means anticlockwise rotation detected")
} else if recognizer.rotation > 0 {
    print("Positive rotation value means clockwise rotation detected")
}
...