我正在使用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;
有人能帮助我吗? 提前谢谢。