如何进行旋转+翻转复合变换?

时间:2014-06-28 04:35:42

标签: ios core-graphics cgaffinetransform

我试图弄清楚如何从右到左进行UIProgressView填充,progress值越来越高。我想如果我只是旋转组件就可以了,但是阴影现在显得颠倒了。如何添加'垂直翻转'转换完成任务?

注意,着色问题会影响< iOS 7。

到目前为止,我的第二行代码无法正常工作,它会使控件消失。

CGAffineTransform rotateTransform = CGAffineTransformMakeRotation(M_PI); // rotate 180 degrees (but now it's upside down)
CGAffineTransform flipTransform = CGAffineTransformMake(0, 0, 0, 1, 0, 0); // flip 90 degrees to bring it the right way up
myProgressView.transform = CGAffineTransformConcat(rotateTransform, flipTransform);

注意: 我没有尝试动画任何东西

更新: 而不是试图找出两个变换来实现这一点(即,一个180度旋转+ 180度垂直反转),只需要一个水平180度反转就可以实现相同的效果。

1 个答案:

答案 0 :(得分:0)

有点迂回,但这就是诀窍......

CATransform3DGetAffineTransform(CATransform3DMakeRotation(M_PI, 0, 1, 0));

enter image description here

注销转换

NSLog(@"%@",[NSValue valueWithCGAffineTransform:self.progress.transform]);

给出

  

CGAffineTransform:{{ - 0.99999982,0,0,1},{0,0}}

并在您尝试创建转换时显示a的{​​{1}}值。