Просмотр изображения на весь экран - требуется увеличение - PullRequest
0 голосов
/ 19 мая 2018

Добрый день, я пишу этот вопрос, потому что я пытаюсь добавить зум (жест щепотки) к полноэкранному изображению.Что я сделал, так это использовал некоторые функции, которые я нашел здесь, но я так и не нашел способ добавить жест увеличения (ущипнуть).В основном у меня есть изображение (@IBOutlet слабый var fotografiaContactoGenerales: UIImageView!) Внутри моего ViewController, и я применил следующий код:

На моем контроллере представления внутри viewDidLoad ():

    // add TAP Recognizer
    let singleTap = UITapGestureRecognizer(target: self, action: #selector(ViewControllerGenerales.tapDetected))
    singleTap.numberOfTapsRequired = 1 // you can change this value
    fotografiaContactoGenerales.isUserInteractionEnabled = true
    fotografiaContactoGenerales.addGestureRecognizer(singleTap)

Outside viewDidLoad ()

@objc func tapDetected() {
    let imageView = fotografiaContactoGenerales!
    let newImageView = UIImageView(image: imageView.image)
    newImageView.frame = UIScreen.main.bounds
    newImageView.backgroundColor = .white
    newImageView.contentMode = .scaleAspectFit
    newImageView.isUserInteractionEnabled = true

    // Set Tap Recognizer
    let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
    newImageView.addGestureRecognizer(tap)

    self.view.addSubview(newImageView)
    self.navigationController?.isNavigationBarHidden = true
    self.tabBarController?.tabBar.isHidden = true
}

@objc func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
    self.navigationController?.isNavigationBarHidden = false
    self.tabBarController?.tabBar.isHidden = false
    sender.view?.removeFromSuperview()
}

В настоящее время мое приложение может отображать изображение в полноэкранном режиме, но я не знаю, как применить процедуру или какой-либо код, чтобы позволить пользователям применять пинч-масштабирование к отображаемому изображению.

Не могли бы вы помочь мне, добавив в приведенный выше код, чтобы разрешить жест увеличения масштаба?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 июля 2019

Спасибо, я хочу поделиться решением этой проблемы, было очень легко, просто я добавил новый Жест с функцией пинч и ниже:)

@objc func scaleImage(_ sender: UIPinchGestureRecognizer) {
    if sender.state == .ended || sender.state == .changed {

        let currentScale = sender.view!.frame.size.width / sender.view!.bounds.size.width
        var newScale = currentScale*sender.scale

        if newScale < 1 {
            newScale = 1
        }
        if newScale > 7 {
            newScale = 7
        }

        let transform = CGAffineTransform(scaleX: newScale, y: newScale)

        self.newImageView.transform = transform
        sender.scale = 1

    }
}

Еще один шаг, который я сделал, это переместить илисоздайте переменную UIIMAGE вне оригинальной полноэкранной функции, и это мне помогло.

Теперь я могу увеличивать изображение, но теперь моя задача - разрешить перемещать изображение пальцем ojjojoj

...