0

transformIdentity を変更するにはどうすればよいですか。変換を「ゼロ」に設定する方法、またはビューの transformIdentity をそのビューの変換の現在の状態に変更する方法。

つまり、ビューをスケーリングしてから、現在の状態 (たとえば、スケール 2.5) をビューのデフォルトのスケール (スケール 1) に設定したいと考えています。

コード例:

   view.transform = CGAffineTransformMakeScale(1, 2.5);

私がやりたいことの擬似コード:

   view.transform = setTransformIdentityTo:view.currentState;

私が正しく理解している場合、transformIdentity はスケールが 1 になる状態、または回転がゼロになる状態であり、デフォルトの「ゼロ」変換です。

注: これを行う理由は、ビューの 1 つの軸のみに負のスケール変換を設定し、フリップが呼び出される前のビューの最後の状態を基準にして常に反転したビューを取得できるようにするためです。

4

4 に答える 4

5

CGAffineTransformIdentityビューまたはレイヤーを元の変換されていない状態にリセットするため、再定義することはできません。
しかし、「個人的な」リセット トランスフォームが必要な場合、たとえば別のスケールで、たとえば を使用して単純に定義し、CGAffineTransform myCGAffineTransformIdentity = CGAffineTransform CGAffineTransformMakeScale (sx,sy);ビューに適用してみませんか?

于 2013-04-21T08:09:28.323 に答える
2
selectedSticker.transform = CGAffineTransformIdentity;
于 2013-04-21T07:38:43.263 に答える
0

これは私がやりたいことに対してうまくいくようです:

CGAffineTransform trans = CGAffineTransformMakeScale(1, 2.5);

view.transform = CGAffineTransformConcat(selectedSticker.transform, trans);
于 2013-04-21T08:08:47.737 に答える