Вращение CATransform3D с меткой в ​​качестве подпредставления

У меня есть одна проблема с CATransform3D.

У меня есть представление A, содержащее метку B. Положение слоя B — центр A. B используется для отображения уведомлений. Я хочу повернуть A на 180 градусов, конечно, текст в B будет перевернутым. Так что я тоже должен повернуть B на 180 градусов. Все кажется прямолинейным, и на самом деле в симуляторе все работает нормально.

Но когда я загрузил устройство, A и B повернулись, но положение B изменилось. Теперь я вижу только половину B, другая половина находится вне A.

Я предполагаю, что при вращении A, поскольку B связан с системой координат A, которая была перевернута на 180 градусов, местоположение B изменилось.

Но я хочу знать, есть ли у кого-нибудь идеи, как решить эту проблему, или есть ли у вас, ребята, лучшие способы подхода.

Большое Вам спасибо.

ОБНОВЛЕНИЕ

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

Ключ animation.autoreverse, мы знаем, что когда вы поворачиваете суперпредставление метки с помощью Pi, текст в метке будет перевернут вверх ногами. Итак, что я сделал, так это повернул супервид на Pi/2, сохранил ту же продолжительность и установил autoreverse = YES, что он сделает, так это повернет супервид на Pi/2, а затем повернет его обратно в исходное состояние. В результате получается, что вид вообще не поворачивается, но для зрения пользователя он вращается.


person Jason    schedule 20.04.2012    source источник


Ответы (1)


Я обнаружил, что подслои и подвиды представлений не всегда хорошо реагируют на двойную анимацию (особенно изменения альфа-канала и центра). Если вам необходимо (поскольку это немного дороже, чем обычно), используйте UIViewAnimationOptionAllowsAnimatedContent, который вызовет перерисовку вместо анимированного «моментального снимка».

person CodaFi    schedule 20.04.2012
comment
Я согласен с тобой. Но я хотел бы найти способ заставить их работать. Я обновлю эту тему, если получу что-нибудь. Спасибо за вашу помощь. - person Jason; 20.04.2012
comment
Звучит здорово. Анимация в iOS сложна, но если вы все сделаете правильно, она будет действительно хороша. - person CodaFi; 20.04.2012