1

UIPinchGestureRecognizer を使用して、(既存の変換、レイヤーの現在の状態に基づいて) Transform を使用して CALayer をスケーリングするにはどうすればよいですか?

- (IBAction)gesturePinch:(UIPinchGestureRecognizer *)sender
{
    float scale = sender.scale;

    scale = scale - previousScale;
    previousScale = scale;


    layer.transform  = CATransform3DScale(square.transform, scale, scale, scale);

}

スケールが増加しているため、非常に急速に大きくなったり、非常に小さくなったりします。助言がありますか?

4

1 に答える 1

2

次のようにスケールを処理することをお勧めします。

layer.transform  = CATransform3DScale(square.transform, sender.scale, sender.scale, sender.scale);
sender.scale = 1.f;

これにより、毎回リセットされるため、計算する必要がなくなります。速度の計算は失われますが、とにかくそれらを使用することはないと思います。

于 2012-10-23T09:32:16.687 に答える