Eric
Eric

Reputation: 893

CGAffineTransformScale in Swift 3.0

Swift 3.0 does not have a method called CGAffineTransformScale.

func didPinchGesture(pinchRecognizer : UIPinchGestureRecognizer) {
  if let view = pinchRecognizer.view {
    view.transform = CGAffineTransformScale(view.transform,
                            recognizer.scale, recognizer.scale)
    pinchRecognizer.scale = 1
  }
}

scaleBy does not autocomplete but added to CGAffineTransform scaleBy throws error, since scale is not a property of CGAffineTransform anymore: CGAffineTransform.scaledBy(view.transform, pinchRecognizer.scale, pinchRecognizer.scale).

What is the best way to configure the pinch gesture recognizer with Swift 3.0?

Upvotes: 8

Views: 6634

Answers (2)

David S.
David S.

Reputation: 6705

You can use a scale transform in Swift 3 like this:

if let view = pinchRecognizer.view {
    view.transform = CGAffineTransform(scaleX: recognizer.scale, y: recognizer.scale)
    ...
  }

Upvotes: 1

kennytm
kennytm

Reputation: 523294

In Swift, CGAffineTransformScale is imported as an instance method on the CGAffineTransform struct, called scaledBy(x:y:):

view.transform = view.transform.scaledBy(x: recognizer.scale, y: recognizer.scale)

Upvotes: 20

Related Questions