嗨,我使用下面代码使用的CABasicAnimation更改了帧大小
CABasicAnimation *newanim;
newanim = [CABasicAnimation animationWithKeyPath:@"bounds.size"];
newanim.duration=3.0;
newanim.fromValue=[NSValue valueWithCGSize:CGSizeMake(0,0)];
newanim.toValue=[NSValue valueWithCGSize:CGSizeMake(self.backgroundImageView.bounds.size.width, self.foregroundImageView.bounds.size.height)];
newanim.fillMode=kCAFillModeForwards;
newanim.autoreverses = YES;
newanim.repeatCount = 1;
newanim.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
[self.view.layer addAnimation:newanim forKey:@"changeSize"];
Run Code Online (Sandbox Code Playgroud)
但动画从原点开始并向两侧移动(就像动画从中心开始).
我尝试通过改变newanim = [CABasicAnimation animationWithKeyPath:@"frame.size"];
它根本不起作用.
b12*_*400 11
Apple有一个答案:http://developer.apple.com/library/mac/#qa/qa1620/_index.html
但我个人认为这不是最好的方法,CATransform3DMakeScale似乎更好:
CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
transformAnimation.duration=3.0;
transformAnimation.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeScale(scaleFactorX, scaleFactorY, scaleFactorZ)];
transformAnimation.removedOnCompletion = FALSE;
[layer addAnimation:transformAnimation forKey:@"transform"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7455 次 |
| 最近记录: |