I'm trying to use a Pinch Gesture Recognizer to scale a UITextView up and down, however it always starts at a scale of 1.0.
I've tried to implement these answers:
iOS Pinch Zoom Start from Previous Scale
UIPinchGestureRecognizer. Make zoom in location of fingers, not only center
Pinch gesture scale resetting to 1?
but i must be doing something wrong, because it still resets to a scale of 1.0 each time. Here's my code:
@objc func pinchRecognized(recognizer: UIPinchGestureRecognizer) {
var lastScale:CGFloat = 1.0
if let view = recognizer.view as? UITextView {
if (recognizer.state == .began) {
lastScale = 1.0
}
let scale = 1.0 - (lastScale - recognizer.scale)
view.transform = CGAffineTransform(scaleX: scale, y: scale)
view.font = UIFont.systemFont(ofSize: 40 * scale)
lastScale = recognizer.scale
}
}