Как я могу использовать UIPinchGestureRecognizer со всем представлением, чтобы увеличить весь экран? Свифт 3, iOS

Кажется, я не могу связать свое действие (жест щипка) с моим представлением, вместо этого оно подключается к контроллеру представления. Это все, что я закодировал в контроллере представления, чтобы проверить код:

import UIKit

class AlertController: UIAlertController {

@IBAction func scaleImage(sender: UIPinchGestureRecognizer) {
    self.view.transform = CGAffineTransformScale(self.view.transform, sender.scale, sender.scale)
    sender.scale = 1
}
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    view.backgroundColor = UIColor.blackColor()
}

override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning()
}

}

Все, что я хочу сделать, это увеличить форму, которую я заполняю в своем приложении (текстовые поля - кнопки и метки, флажки - кнопки и метки, фоновое изображение - представление изображения). Я хочу иметь возможность масштабировать все сразу. Я терплю неудачу. Пожалуйста помоги! :)


person MontgommeryJR    schedule 10.03.2017    source источник


Ответы (1)


сначала сделайте распознаватель:

let pinchGestureRecognizer = UIPinchGestureRecognizer(target: self, action: #selector(pinchHandler))

затем создайте функцию обработчика:

func pinchHandler(recognizer : UIPinchGestureRecognizer) {

    print ("PINCHING NOW")

    if let view = self.view {
        view.transform = view.transform.scaledBy(x: recognizer.scale, y: recognizer.scale)
        recognizer.scale = 1
    }
}

внутри viewDidLoad добавить распознаватель:

pinchGestureRecognizer.addTarget(self, action: #selector(pinchHandler))
view.addGestureRecognizer(pinchGestureRecognizer)
person Pavel Alexandrovich Ak-01    schedule 06.07.2017