如何旋转CAShapeLayer对象?

时间:2015-02-19 04:07:55

标签: ios objective-c core-animation uibezierpath cashapelayer

基本上我需要实现的是自定义按钮,需要在加号图标和带动画的复选标记之间切换。作为第一步,我尝试使用CAShapeLayer创建水平线并尝试以某个角度旋转。我无法弄清楚它有什么问题。

 UIBezierPath *linePath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0,self.frame.size.width, 10)];

//shape layer for the line
CAShapeLayer *line = [CAShapeLayer layer];
line.backgroundColor = [UIColor redColor].CGColor;
line.path = [linePath CGPath];
line.fillColor = [[UIColor greenColor] CGColor];
line.frame = CGRectMake(0, 10, self.frame.size.width,10);
line.anchorPoint = CGPointMake(0.0, 0.5);
line.transform = CATransform3DMakeRotation(30, 0.0, 0.0, 1.0);
[self.layer addSublayer:line];

2 个答案:

答案 0 :(得分:4)

转换使用弧度,所以你应该使用

line.transform = CATransform3DMakeRotation(30 * M_PI/180, 0.0, 0.0, 1.0);

答案 1 :(得分:0)

我使用这个库来添加我添加的内容http://code4app.net/ios/BZAnimationButton/5477ed87e24741f10bb03ca0