переключить вид с анимацией UIViewAnimationTransitionCurlUp - PullRequest
3 голосов
/ 01 июня 2011

Я работаю над приложением для iPad, которое имеет небольшой всплывающий вид перед основным видом фона.

Во всплывающем окне отображается одна фотография и связанные с ней заметки и т. Д. Основной вид представляет собой набор миниатюр

Я хочу реализовать такие действия, как пролистывание влево / вправо, чтобы заменить всплывающее представление новым всплывающим представлением с анимацией.

// popView is the existing pop up view to be replaced
MyPopupViewController *newPopView = [[MyPopupViewController alloc] initWithData:...];
[UIView animateWithDuration:0.4 
        delay:0 
        options:UIViewAnimationOptionCurveEaseInOut 
        animations: ^{
                   [self.view addSubView: newPopView.view];
                   [popView removeFromSuperView];
                   [UIView setAnimationTransition: UIViewAnimationTransitionCurlUp 
                                          forView:popView cache:YES]; 
        } completion:^(BOOL finished) { popView = newPopView } 
];
[newPopView release];

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

Я потратил довольно много времени, играя с последовательностями, но просто не могу заставить его работать. Пожалуйста, помогите.

Спасибо заранее. Leo

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Я наконец исправил это, установив старый вид, скрытый в блоке анимации. Анимация покажет новый вид во время анимации.

0 голосов
/ 02 декабря 2014

Вот как я это сделал: он хорошо работает в ландшафте и завитках снизу вверх

[UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionTransitionCurlUp animations:^()
     {
         [UIView setAnimationTransition: UIViewAnimationTransitionCurlUp
                                forView:self.welcomScreen cache:YES];
         [self.welcomScreen setHidden:YES];
     }completion:^(BOOL finished)
     {
         [self.welcomScreen removeFromSuperview];
     }];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...