Xcode: Почему моя анимация переворачивается дважды? - PullRequest
0 голосов
/ 18 сентября 2011

У меня небольшая проблема. У меня есть UILabel, который имеет UILongPressGestureRecognicer. Когда вызывается UILongPressGestureRecognizer, мое приложение должно переключаться на новое представление с помощью переворачиваемой анимации.

Это код, который я использовал для GestureRecognizer:

UILongPressGestureRecognizer *labelLongPressRecognizer;
labelLongPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LoadLabelSettings:)];

labelLongPressRecognizer.numberOfTouchesRequired = 1;
labelLongPressRecognizer.minimumPressDuration = 2.0;

[NewLabel addGestureRecognizer:labelLongPressRecognizer];

и это код для анимации переключения вида:

CGContextRef context = UIGraphicsGetCurrentContext();

[UIView beginAnimations:nil context:context];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.view cache:NO];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.0];

[self.view addSubview:LabelSettingsViewController.view];

[UIView commitAnimations];

if (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight || self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {

    LabelSettingsViewController.view.frame = CGRectMake(0, 0, 480, 300);

}

Моя проблема в том, что когда я удерживаю UILabel, анимация переключателя начинается, но когда я отпускаю, анимация повторяется снова. Так что в основном анимация происходит дважды, и я хочу, чтобы она происходила только один раз.

Есть идеи?

Заранее спасибо:)

1 Ответ

1 голос
/ 23 марта 2012

Проверяете ли вы состояние отправителя, например,

- (void)LoadLabelSettings:(UILongPressGestureRecognizer *)sender 
{
    if (sender.state == UIGestureRecognizerStateEnded) // or whatever
        // then do the flipping stuff
}

Проверьте «Обзор» «Справочника классов UILongPressGestureRecognizer», в котором говорится о продолжительном нажатии, и я предполагаю, что многочисленные события могут бытьсработало:

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UILongPressGestureRecognizer_Class/Reference/Reference.html

...