Я пытаюсь найти способ анимации 3D-вращения UIView. Я хочу, чтобы это выглядело как анимация push-уведомления, если вы выберете стиль «Баннер». Я пытаюсь использовать что-то вродеРеалистичная анимация вращения 3D UIView
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"];
CATransform3D t = CATransform3DIdentity;
t = CATransform3DTranslate(t, 0, -self.bounds.size.height/2, 0);
t = CATransform3DRotate(t, M_PI_2, 1, 0, 0);
t = CATransform3DTranslate(t, 0, -self.bounds.size.height/2, 0);
[anim setFromValue:[NSValue valueWithCATransform3D:CATransform3DIdentity]];
[anim setToValue:[NSValue valueWithCATransform3D:t]];
anim.removedOnCompletion = NO;
[anim setDuration:0.25];
anim.fillMode = kCAFillModeForwards;
anim.delegate = self;
[self.layer addAnimation:anim forKey:@"Rotation"];
Но это выглядит плоским и не очень реалистичным 3D как баннеры push-уведомлений. Как я могу сделать эту анимацию более реалистичной?
Основная часть реализма заключается в том, что вам не хватает перспективы. Установите 't.m34 = -1.0/500.0;' перед тем, как начать его преобразовывать (вы можете прочитать, почему в конце [этого длинного сообщения] (http://ronnqvi.st/the-math-behind-transforms/)) , Помимо этого, анимация translate-rotate-translate будет делать это по прямой (вы можете видеть, о чем я говорю [здесь] (http://ronnqvi.st/translate-rotate-translate/)) –