UIView Transistion с анимацией не работает - PullRequest
0 голосов
/ 26 декабря 2011

Итак, я хотел изучить анимацию перехода с блоками. Поэтому я пошел к документации по Apple и взял пример анимации, используя старый метод (без блоков) . Я взял фрагмент кода (небольшая модификация) и проверил это. Отлично работает

[UIView setAnimationDelegate:nil];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:kTransitionDuration];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight
                                forView:self.view
                                cache:YES];

if ([self.instructionsView superview]) {
    [self.instructionsView removeFromSuperview];
    [self.view addSubview:contentView];
} else {
    [self.contentView removeFromSuperview];
    [self.view addSubview:instructionsView];
}

[UIView commitAnimations];

// adjust our done/info buttons accordingly
if ([instructionsView superview]) {
    self.navigationItem.rightBarButtonItem = doneButton;
} else {
    self.navigationItem.rightBarButtonItem = flipButton;
}

Теперь приведенный ниже код является моей попыткой преобразовать код сверху в код с блоками

[UIView transitionWithView:self.view duration:kTransitionDuration options:UIViewAnimationTransitionFlipFromRight animations:^{
        if ([self.instructionsView superview]) {
            [self.instructionsView removeFromSuperview];
            [self.view addSubview:contentView];
        } else {
            [self.contentView removeFromSuperview];
            [self.view addSubview:instructionsView];
        }
} completion:^(BOOL finished){

        if ([instructionsView superview]) {
            self.navigationItem.rightBarButtonItem = doneButton;
        } else {
            self.navigationItem.rightBarButtonItem = flipButton;
        }
}];

Из того, что я могу понять, должен работать приведенный ниже код. Я тестирую это на iOS 4.2, которая поддерживает блоки. Однако, похоже, это не оживляет, и я не понимаю, почему это так. Это меняет взгляды, просто не оживляет. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 03 января 2012

Попробуйте заменить transitionWithView на transitionToView: fromView

...