如何转换(旋转)已存在的CALayer/动画?

3
我已经将一个CALayer添加到了我的应用程序的UIView中:
    CATransition *animation = [CATransition animation];
    [animation setDelegate:self];
    [animation setDuration:0.35];
    [animation setTimingFunction:UIViewAnimationCurveEaseInOut];
        animation.type = @"pageCurl";
        animation.fillMode = kCAFillModeForwards;
        animation.endProgress = 0.58;
    [animation setRemovedOnCompletion:NO];
    [[self.view layer] addAnimation:animation forKey:@"pageCurlAnimation"];

现在当用户旋转设备时,该层始终保持在屏幕上的相同位置(与主屏幕按钮对齐)。是否可以旋转动画/图层?我已经尝试过。

现在当用户旋转设备时,该层始终保持在屏幕上的相同位置(与主屏幕按钮对齐)。是否可以旋转动画/图层?我已经尝试过。
self.view.layer.transform = CGAffineTransformMakeRotation (angle);

但是这段代码只旋转了UIView,而没有旋转我设置的动画/图层。
1个回答

4

出现错误是因为CALayer的变换属性类型是CATransform3D,而你却使用了CGAffineTransform。应该使用CATransform3D CATransform3DMakeRotation(CGFloat angle, CGFloat x, CGFloat y, CGFloat z)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接