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 回答