CATransform3DMakeRotation如何停止离开屏幕

时间:2014-12-14 20:27:18

标签: ios core-animation

我正在使用CATransform3DMakeRotation旋转图层。我有两个问题: a)有时走出屏幕 b)有时定位在其他层之上。

int randrotate=arc4random()%3+1;
CATransform3D   trans5=CATransform3DMakeRotation(M_PI*randrotate , 1.0, 0.0, 0.0);
randrotate=arc4random()%4+1;
CATransform3D   trans6=CATransform3DRotate(trans5,M_PI*randrotate, 0.0, 0.0, 1.0);
randrotate=arc4random()%3+1;
CATransform3D   trans7=CATransform3DRotate(trans5,M_PI_2*randrotate, 0.0, 1.0, 0.0);
CATransform3D   trans=CATransform3DRotate(trans7,M_PI*45/180, 0.0, 1.0, 0.0);
CATransform3D   trans8=CATransform3DRotate(trans,DEGREES_TO_RADIANS(-45), 1.0, 0.0, 0.0);

CABasicAnimation *ganimation = [CABasicAnimation animationWithKeyPath: @"transform"];
ganimation.beginTime=CACurrentMediaTime();
ganimation.toValue = [NSValue valueWithCATransform3D: trans];
ganimation.duration = 0;
ganimation.cumulative = NO;
ganimation.repeatCount = 0;
ganimation.removedOnCompletion = NO;
ganimation.fillMode = kCAFillModeForwards;
ganimation.delegate=self;

[correctbase addAnimation:ganimation forKey:@"green"];

动画后正确的基础正在改变他的位置。 现在在动画之后,我想把正确的基础放回原来的位置,correctbase是一个CATransformLayer。

如果我尝试访问表示层,它总是没有

CATransformLayer *layer=(CATransformLayer*)correctbase.presentationLayer;

有人能帮助我吗? 提前谢谢。

0 个答案:

没有答案