Итак, я пытаюсь создать эффект переворачивания плитки, как в 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. Для точки привязки возможно ли установить позицию в родительском представлении? В данный момент я произвольно устанавливаю его относительно текущего представления.
Заранее спасибо за любые указатели.
До анимации
Во время анимации (обратите внимание, квадрат сместился вправо)
После анимации (обратите внимание, квадрат сместился вправо)
Добавлено видео: пример видео