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