Iphone UIView的真实3d旋转动画
我正试图找到一种方法来制作UIView的3D旋转动画。我想它看起来像推通知动画,如果你选择“横幅”风格。我试着用类似的东西Iphone UIView的真实3d旋转动画,iphone,ios,objective-c,xcode,core-animation,Iphone,Ios,Objective C,Xcode,Core Animation,我正试图找到一种方法来制作UIView的3D旋转动画。我想它看起来像推通知动画,如果你选择“横幅”风格。我试着用类似的东西 CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"]; CATransform3D t = CATransform3DIdentity; t = CATransform3DTranslate(t, 0, -self.bounds.size.height/2, 0); t =
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"];
但这看起来很平淡,不像推送通知的横幅那样逼真。如何使此动画更逼真?您可能需要深入了解其实现方式
此外,还有不同类型的CALayer,您可能希望从动画视图的
+(Class)layerClass
中选择所需的CALayer。在我看来,你坚持使用普通的CALayer。现实主义的主要部分是你缺少透视图。设置t.m34=-1.0/500.0代码>在开始转换之前(您可以在文章末尾阅读原因)。除此之外,动画“平移-旋转-平移”将在一条直线上进行(你可以看到我在说什么)