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

发布于 2024-08-27 17:15:28 字数 695 浏览 6 评论 0原文

我已将 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 而不是我设置的动画/图层。

I have added a CALayer to the UIView of my app:

    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"];

Now when the user rotates the device, the layer always stays in the same position on the screen (in line to the homescreen button). Is it possible to rotate the animation/layer? I tried

self.view.layer.transform = CGAffineTransformMakeRotation (angle);

but this code just rotates the UIView and not the animation/layer I set.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹿港小镇 2024-09-03 17:15:28

该错误是因为 CALayer 的变换属性的类型是 CATransform3D,并且您给它一个 CGAffineTransform。使用
CATransform3D CATransform3DMakeRotation(CGFloat角度,CGFloat x,CGFloat y,CGFloat z);
反而。

The error is because the type of the transform property of CALayer is CATransform3D, and you're giving it a CGAffineTransform. Use
CATransform3D CATransform3DMakeRotation (CGFloat angle, CGFloat x, CGFloat y, CGFloat z);
instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文