Откройте полноразмерное изображение в другом ViewController, который можно масштабировать, например, Whatsapp. - PullRequest
0 голосов
/ 15 марта 2019

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

Вот мой контроллер, где я получаю изображение с предыдущего VC, и где я делаю всю логику:

class FullScreenImageVC: UIViewController, UIScrollViewDelegate {

var startingFrame: CGRect?
var blackBackgroundView: UIView?
var startingImageView: UIImageView?
var imageToSave: UIImage?

var zoomingImageView: UIImageView = {
    let image = UIImageView()
    image.translatesAutoresizingMaskIntoConstraints = false
    return image
}()

var scrollView: UIScrollView = {
    let scroll = UIScrollView()
    scroll.minimumZoomScale = 1
    scroll.maximumZoomScale = 7
    scroll.translatesAutoresizingMaskIntoConstraints = false
    return scroll
}()

override func viewDidLoad() {
    super.viewDidLoad()
    scrollView.delegate = self

    let imageView = UIImageView()
    imageView.image = zoomingImageView.image
    imageView.contentMode = .scaleAspectFit
    imageView.isUserInteractionEnabled = true

    view.addSubview(scrollView)
    scrollView.addSubview(imageView)
    scrollView.fillSuperView()
    imageView.fillSuperView()

}

static func navigate(_ context: UIViewController, image: UIImageView) {
    let vc = FullScreenImageVC()
    vc.zoomingImageView = image

    vc.hidesBottomBarWhenPushed = false
    context.navigationController?.pushViewController(vc, animated: true)
}

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
    return self.zoomingImageView
}

}

Вот что я получил сейчас: ссылка на GIF

Пожалуйста, любая помощь будет оценена.

1 Ответ

0 голосов
/ 15 марта 2019

Пожалуйста, проверьте следующее Чтобы показать обычный контроллер просмотра изображений

https://github.com/wxxsw/GSImageViewerController

https://github.com/hyperoslo/Lightbox

...