我正试图找到一种方法来动画UIView的3D旋转。如果选择“横幅”样式,我想看起来像推送通知的动画。我正在尝试使用像
这样的东西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。如何让这个动画更逼真?
答案 0 :(得分:2)
您可能需要深入了解CMNavBarNotificationView的实施方式。
另外,有不同类型的CALayer,您可能希望从动画视图的+(Class)layerClass
中选择所需的一个。在我看来你坚持使用普通的CALayer。