iphone - 带有旋转动画的 CALayer

标签 iphone objective-c ios calayer

我屏蔽了这样一张图片:

UIView *maskImage; maskImage = [[UIView alloc] init];
maskImage.backgroundColor = UIColorFromRGB(FTRMaskColor);
maskImage.frame = newFrame;

CALayer *theLayer = [CALayer layer];
theLayer.contents = (id)[[UIImage imageNamed:@"image.png"] CGImage];
theLayer.frame = newFrame;

maskImage.layer.mask = theLayer;

它工作正常,但主要问题是如果我想旋转我的 Ipad, View 或层的旋转动画(我不太确定)不起作用。它在没有动画的情况下旋转。你能帮忙吗?

最佳答案

旋转CALayer:

NSNumber *rotationAtStart = [myLayer valueForKeyPath:@"transform.rotation"];
CATransform3D myRotationTransform = CATransform3DRotate(myLayer.transform, myRotationAngle, 0.0, 0.0, 1.0);
myLayer.transform = myRotationTransform;        
CABasicAnimation *myAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
myAnimation.duration = kMyAnimationDuration;
myAnimation.fromValue = rotationAtStart;
myAnimation.toValue = [NSNumber numberWithFloat:([rotationAtStart floatValue] + myRotationAngle)];
[myLayer addAnimation:myAnimation forKey:@"transform.rotation"];

myRotationAngle 应该以弧度为单位。逆时针旋转使用负值,顺时针旋转使用正值。

关于iphone - 带有旋转动画的 CALayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690780/

相关文章:

iphone - 如何在 iPhone/IOS 应用程序中以编程方式更改圆形按钮图像的颜色?

iphone - 如何以编程方式检测 iPhone 中的耳机?

ios - 在 UIAlertView 上检测 Yes 和 No

objective-c - 如何在 OSX Lion 上的 Xcode 中获取可见窗口列表?

ios - 是否有可能从 iOS 上的 CIFilter 获得(接近)实时性能?

iOS 崩溃 - 在当前参数寄存器 0x​​104567911 中找到选择器名称

iphone - xcode 将警告显示为错误

ios - 从 Xib 加载的自定义 UIView

ios - 我真的必须创建变量的两个版本才能使用 Objective-C block 吗?

ios - 核心数据错误 : -[myclass encodeWithCoder:]: unrecognized selector sent to instance