Как FlipFromLeft? - PullRequest
       19

Как FlipFromLeft?

3 голосов
/ 06 сентября 2011
UIImageView * frontImageView = [[UIImageView alloc] initWithImage:[UIImage 
                                                                   imageNamed:@"view.png"]];

UIView * containerView = [[UIView alloc] initWithFrame:frontImageView.bounds];
containerView.center = self.view.center;

[self.view addSubview:containerView];
[containerView addSubview:frontImageView];

UIImageView * backImageView = [[UIImageView alloc] initWithImage:[UIImage 
                                                                  imageNamed:@"view.png"]];
backImageView.center = frontImageView.center;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft 
                       forView:containerView 
                         cache:YES];
[frontImageView removeFromSuperview];
[containerView addSubview:backImageView];
[UIView commitAnimations];

Я хочу перевернуть контейнер, но он не работает.

Ответы [ 3 ]

2 голосов
/ 06 сентября 2011

Этот похож на этот же пост.@ Джейсон Харвиг предлагает вам попробовать:

Попробуйте использовать self.view.superview в представлении перехода анимации showMoreInfo:

РЕДАКТИРОВАТЬ: Глядя на другой пост , кажется, что добавление подпредставления ДО , передающего анимацию, является проблемой.Почему бы вам не попробовать это?

Надеюсь, что поможет!

0 голосов
/ 06 сентября 2011

Правильно установите фрейм containerView. Вы установили неправильный frontImageView.bounds.

0 голосов
/ 06 сентября 2011

не использовать

[frontImageView removeFromSuperview];

в этой функции. Что происходит, прежде чем анимация произойдет, ваш вид удаляется из суперпредставления Следовательно, нет анимации. Вместо этого используйте это.

[UIView setAnimationDidStopSelector:@selector(removeImageView)];

и сделай другой метод,

-(void) removeImageView
{
        if([yourImageView superview])
            [yourImageView removeFromSuperview];
}
...