0

我正在尝试找到一种方法来为 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。我怎样才能使这个动画更逼真?

4

1 回答 1

2

您可能想深入了解CMNavBarNotificationView是如何实现的。

另外,有不同类型的 CALayer,您可能想从+(Class)layerClass动画视图中选择一个想要的。我似乎坚持使用普通的 CALayer。

于 2013-02-28T08:32:53.343 回答