Блокировать переход с более чем одним видом - PullRequest
1 голос
/ 17 августа 2011

до сих пор я использовал метод begin / commit для переключения между представлениями. Поступая таким образом, можно было легко «объединить» два или более вида, которые будут вставлены сверху одновременно. В моем случае это content2.view с border2.view над ним. Анимация выглядела так, как будто это один вид с содержимым в кадре.

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:speed];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES];

    [window addSubview:content2.view];
    [window addSubview:border2.view];

    [UIView commitAnimations];

    content1.view = nil;

Теперь я хотел преобразовать анимацию в блоки. Это также работает, но я не могу понять, как я могу «объединить» два взгляда. Есть ли способ?

[UIView transitionFromView:content1.view
                    toView:content2.view
                  duration:2.0
                   options:UIViewAnimationOptionTransitionFlipFromRight
                completion:NULL];

1 Ответ

0 голосов
/ 17 августа 2011

Вы должны использовать метод:

transitionWithView:duration:options:animations:completion:

transitionFromView: toView - это удобный метод для наиболее общего случая необходимости перехода от одного вида к другому.

В этомрегистр, ваш код должен быть

[UIView transitionWithView:window
                  duration:2.0 
                   options:UIViewAnimationOptionTransitionFlipFromRight
                animations:^{ [window addSubview:content2.view];
                              [window addSubview:border2.view]; }
                completion:^(BOOL completed){ [content1.view removeFromSuperview];
                                              content1.view = nil; }
...