Вращение слоя UIView не оставляет фон сверху, когда transform.rotation.y> M_PI - PullRequest
0 голосов
/ 14 июля 2011

Я играю с Core Animation и борюсь с моим последним вариантом использования питомца: вращением карты по оси Y.

Вот как настроен мой вид:

- AceView
   |
   └- background-view (filling the frame with a white background)
   |
   └- UILabel and UIImageView views for the UI artifacts

Анимация настраивается благодаря классу CABasicAnimation и применяется к слою AceView. К сожалению, поведение не такое, как я ожидал:

enter image description here

Карта вращается, но я хотел, чтобы, когда мы увидели «заднюю сторону» (transform.rotation.y > M_PI) вида, мы увидели «фоновый вид», о котором я упоминал выше (то есть на рисунке выше, 3-й шаг) будет полностью белым). Сначала я даже подумал, что установки цвета фона для AceView будет достаточно, к сожалению, нет.

Я должен явно что-то упустить, не могли бы вы объяснить, что?

РЕДАКТИРОВАТЬ: я могу сопоставить свое ожидание, используя переход, используя + (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion, но все же, если кто-нибудь может объяснить мне, почему вращение по оси Y не показывает белый вид, когда > M_PI Я был бы очень рад.

1 Ответ

2 голосов
/ 23 ноября 2011

CALayer по умолчанию рисует обе стороны вида по умолчанию. Я бы предположил, что причина, по которой вы видите разницу в transitionFromView: ToView: в том, что вы переключаетесь с передней части «fromView» на переднюю часть «toView».

...