1

我正在创建视图,然后旋转它们并翻转它们。似乎可以使用 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);
}

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

问题是当我按照上面的方式进行翻转后旋转时,结果并没有像预期的那样出现。视线突然向相反的方向翻转。

在此处输入图像描述

我认为正在发生的事情是连接的变换被重置,所以唯一的变换是旋转。因此,在这种情况下,旋转代码中的连接可能会失败。

关于我需要做什么的任何线索?

4

0 回答 0