UIViewAnimationOptionTransitionFlipFromRight не распознается XCode - PullRequest
1 голос
/ 13 января 2011

Я реализую очень простую анимацию сальто, но сальто нет.

Я использую пример из документации в качестве шаблона, Apple теперь рекомендует использовать блоки для анимации, и этот подход следует использовать: (из документации)

[UIView transitionWithView:containerView
           duration:0.2
           options:UIViewAnimationOptionTransitionFlipFromLeft
           animations:^{ [fromView removeFromSuperview]; [containerView addSubview:toView]; }
           completion:NULL]; 

Перенос двух представлений, между которыми вы хотите перейти, в контейнер. Я делаю это так.

UIView *container = [[UIView alloc] initWithFrame:target];
[self.view addSubview:container];
[container addSubview:productImage];

UIView *background = [[UIView alloc] initWithFrame:target];
[background setBackgroundColor:[UIColor darkGrayColor]];
[background setAlpha:0.1f];

[UIView transitionWithView:container
                  duration:0.8
                   options:UIViewAnimationOptionTransitionFlipFromRight
                animations:^{ 
                    [[[container subviews] objectAtIndex:0] removeFromSuperview];
                    [container addSubview:background]; 
                }
                completion:NULL];

Происходят две странные вещи: Переход отсутствует, контейнер отображает productImage (типа UIImageView), а затем заменяет его фоновым представлением. Без анимации.

Второе, что заставило меня поверить, что это не обычная опечатка, это то, что

UIViewAnimationOptionTransitionFlipFromRight

не распознается XCode, он не будет заполняться автоматически, он не подсвечивается. Xcode будет делать это только в том случае, если я использую устаревший:

UIViewAnimationTransitionFlipFromRight //i.e. without the Option part

Затем я начал проверять версию своего SDK и т. Д., Кажется, все установлено на 4.2, XCode - это версия 3.2.5, в настройках и для цели, и для проекта установлены целевые параметры сборки и развертывания, равные 4.2.

Что мне здесь не хватает?

Надеюсь, что набор обученных глаз может помочь мне :) заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 января 2011

Этот код поможет вам

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];


UIViewAnimationTransition transition = UIViewAnimationTransitionFlipFromRight;
[UIView setAnimationTransition:transition forView:[self.navigationController view] cache:NO];


[UIView commitAnimations];

Приветствия

...