UIView Animation не запускает переход - PullRequest
1 голос
/ 11 июня 2010

Итак, я довольно долго искал это и, похоже, не могу найти решение.

Этот код работает:

CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationDuration:5];
[c setCenter:CGPointMake(200, 200)];
[UIView commitAnimations];

Этот код не:

CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:c cache:YES];
[UIView setAnimationDuration:5];
[c exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
[UIView commitAnimations];

И я знаю, что вызов exchangeSubViewAtIndex работает, потому что, если я удаляю его из блока анимации, он работает как положено.

Кто-нибудь знает, почему этот переход не будет запущен? Что-то, что мне нужно импортировать?

1 Ответ

1 голос
/ 14 июня 2010

Я процитирую Apple (снова) здесь:

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

  1. Начать анимационный блок.
  2. Установить переход в представлении контейнера.
  3. Удалить подпредставление из представления контейнера.
  4. Добавить новое подпредставление в представление контейнера.
  5. Зафиксировать блок анимации.

Так что вы, вероятно, хотели бы использовать removeFromSuperview & addSubView: вместо обмена двумя подпредставлениями, если вы использовали предопределенный переход.

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