Проблемы с переносом анимации на блоки iOS4 - PullRequest
1 голос
/ 05 августа 2010

У меня есть анимация рабочего представления, которая свернута в вид контейнера, в то время как containerview.subviews изменяется.(перед анимацией будет показан UITableView, после того, как это пользовательский вид, имя keypadView)

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
                       forView:containerView 
                         cache:YES];
[secondView removeFromSuperview];
[containerView addSubview:keypadView];
[UIView commitAnimations];

Теперь я хочу переписать этот код для API на основе блоков iOS4, так как я хочу использоватьЗавершение блока.Я написал это:

[UIView transitionWithView:containerView
                  duration:.75 
                   options:UIViewAnimationTransitionCurlUp
                animations:^{
                    NSLog(@"Hey Ho");
                    [secondView removeFromSuperview];
                    [containerView addSubview:keypadView];
                } 
                completion:NULL];

Переключение представлений - но не анимированное.

что не так с моим кодом?

Редактировать

completion: ^(BOOL completed){
    NSLog(@"completed %d", completed);
}

не помогает, так как NULL является допустимым значением, согласно документам

Ответы [ 4 ]

2 голосов
/ 15 октября 2010

do: options: UIViewAnimationOptionTransitionCurlUp вместо: options: UIViewAnimationTransitionCurlUp

Именно поэтому ваш код работает сейчас:).

2 голосов
/ 18 августа 2010

Пример в справочнике классов UIView может быть неправильным - или, возможно, есть ошибка с добавлением и удалением представлений в объекте блока animations, но только так я смог получить егоработать следующим образом:

[secondView removeFromSuperview];
[containerView addSubview:keypadView];
[UIView transitionWithView:containerView
                  duration:.75
                   options:UIViewAnimationOptionTransitionCurlUp
                animations:^{}
                completion:^(BOOL finished) {
                    NSLog(@"finished %d", finished);
                }];
1 голос
/ 05 августа 2010

Всегда ли блок завершения NULL? Попробуйте добавить туда выражение NSLog или что-то в этом роде. Я не знаю, если NULL блоки испортят это.

1 голос
/ 05 августа 2010

Вы оставили [UIView beginAnimations:nil context:nil]; над своим новым блоком?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...