开发者

How to transform (rotate) a already exist CALayer/animation?

开发者 https://www.devze.com 2022-12-25 08:30 出处:网络
I have added a CALayer to the UIView of my app: CATransition *animation = [CATransition animation]; [animation setDelegate:self];

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.transfo开发者_运维技巧rm = CGAffineTransformMakeRotation (angle);

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


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消