tip*_*low 4 core-animation core-graphics uiviewanimation ios
基本上,我正在围绕一个点旋转一层:
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -500;
transform = CATransform3DTranslate(transform, rotationPoint.x-center.x, rotationPoint.y-center.y, 0.0);
transform = CATransform3DRotate(transform, (rotationAngleFor) * M_PI / 180.0f, 0.0, 1.0, 0);
transform = CATransform3DTranslate(transform, center.x-rotationPoint.x, center.y-rotationPoint.y, 0.0);
Run Code Online (Sandbox Code Playgroud)
我还创建了一个图层,将其添加到更大的图层,然后将变换应用于它:
[self.layer addSublayer:myLayer];
myLayer.transform = transform;
Run Code Online (Sandbox Code Playgroud)
如何动画这个?
注意 -将其放在UIView动画块中不起作用.
编辑:由于@DuncanC指出我的描述与实际代码不符.
您可以使用CABasicAnimation添加到图层的a,如下所示.
CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath: @"transform"];
<here goes your definition of transform>
transformAnimation.toValue = [NSValue valueWithCATransform3D:newTransform];
transformAnimation.duration = 10;
[self.layer addAnimation:transformAnimation forKey:@"transform"];
Run Code Online (Sandbox Code Playgroud)
此动画执行的连续变化transform从原始值的层的属性transform的层对的属性newTransform转变.这个改变需要10秒钟.
| 归档时间: |
|
| 查看次数: |
6016 次 |
| 最近记录: |