смешанный с другими UIViewAnimations в блоке - PullRequest
0 голосов
/ 12 января 2011

Я пытался реализовать что-то похожее на магазин iBook на iPad.При нажатии на обложку книги она будет переворачиваться и масштабироваться одним плавным движением, от обложки книги до пустого фона, который затем загружает содержимое.

Я пробовал разные подходы, сначала переворачивая, затем масштабируя,Я попытался обернуть transitionFromView внутри блока animateWithDuration, но не могу заставить его выглядеть правильно.Он будет либо делать одно, то другое, либо в последнем случае делать одно, затем «flickr» и ничего не делать.

[UIView transitionFromView:fromView
                    toView:toView
                  duration:0.8
                   options:UIViewAnimationOptionTransitionFlipFromRight
                completion:^(BOOL finished) {
                    if (finished) {
                            [UIView animateWithDuration:0.4
                                animations:^{[fromView setFrame:originFrame];}
                                completion:^(BOOL finished){}];
                    }
                }];

Блоки отлично подходят для анимации, без сомнения!Но как я могу одновременно переворачивать и масштабировать?

Заранее спасибо.

1 Ответ

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

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

CGRect endFrame; //The frame of the view after animation
UIView *sview; //The superview containing the first view
UIView *view1; //The first view, to be removed from sview
UIView *view2; //The second view, to be added to sview

view2.frame = view1.frame;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:sview cache:YES];
[view1 removeFromSuperview];
[sview addSubview:view2];
sview.frame = endFrame;
[UIView commitAnimations];

Чтобы это работало, маска автоматического изменения размера в view2 должна иметь размеры по ширине и высоте.

...