我正在创建视图,然后旋转它们并翻转它们。似乎可以使用 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);
}
问题是当我按照上面的方式进行翻转后旋转时,结果并没有像预期的那样出现。视线突然向相反的方向翻转。
我认为正在发生的事情是连接的变换被重置,所以唯一的变换是旋转。因此,在这种情况下,旋转代码中的连接可能会失败。
关于我需要做什么的任何线索?