我正在创建视图,然后旋转它们并翻转它们。似乎可以使用CGAffineTransformConcat来梳理比例和旋转以获得我期望的结果,但是我遇到了一些麻烦。
最初我设置了一个垂直翻转视图的转换。
CGAffineTransform flipViewTrans;
viewFlipTrans = CGAffineTransformMakeScale(1, -1);
selectedView.transform = CGAffineTransformConcat(selectedView.transform, flipViewTrans);
当我旋转视图时,我将原始翻转变换连接起来,这似乎通过旋转完全按照预期保留此翻转变换。
-(IBAction)rotateView:(UISlider*)sender {
float angle = sender.value;
selectedView.rotation = angle;
[selectedView setTransform:CGAffineTransformMakeRotation(angle)];
selectedView.transform = CGAffineTransformConcat(selectedView.transform, flipViewTrans);
}
视图也很好。
-(IBAction)flipSickerH:(GradientButton*)sender {
viewFlipTrans = CGAffineTransformMakeScale(-1, 1);
selectedView.transform = CGAffineTransformConcat(selectedView.transform, viewFlipTrans);
}
问题是当我按照上面的方式进行翻转后旋转时,结果不会如预期的那样出现。视图突然向相反方向翻转。
我认为,正在发生的是连接的变换被重置,因此唯一的变换是旋转。因此,在这种情况下,旋转代码中的串联可能会失败。
关于我需要做什么的任何线索?