Итак, я пытаюсь создать эффект переворота плитки, как на Windows Phone 7.
Пока у меня есть следующий код, но у меня есть пара запросов.
CALayer *layer = self.theRedSquare.layer;
CATransform3D initialTransform = self.theRedSquare.layer.transform;
initialTransform.m34 = 1.0 / -1000;
[UIView beginAnimations:@"Scale" context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve: UIViewAnimationCurveEaseInOut];
layer.transform = initialTransform;
layer.anchorPoint = CGPointMake(-0.3, 0.5);
CATransform3D rotationAndPerspectiveTransform = self.theRedSquare.layer.transform;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, M_PI , 0 , -self.theRedSquare.bounds.size.height/2, 0);
layer.transform = rotationAndPerspectiveTransform;
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
1. Почему мой красный квадрат (простой вид пользовательского интерфейса) переводится вправо в начале анимации?
2. Можно ли установить позицию для точки привязки в родительском представлении? На данный момент я произвольно устанавливаю его относительно текущего представления.
Заранее благодарим за любые указатели.
До анимации
Во время анимации (обратите внимание, что квадрат сдвинулся вправо)
После анимации (обратите внимание, что квадрат сдвинулся вправо)
Видео добавлено: пример видео