Откройте полноразмерное изображение в другом ViewController, которое можно сжать для увеличения, например Whatsapp

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

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

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
}

}

Вот что я получил на данный момент: ссылка на гифку

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

github.com/ssouri1/SPPhotoViewer надеюсь, этот модуль поможет
Kaushik Makwana 15.03.2019 05:49

Я прочитал только один контроллер представления в вашем коде.

El Tomato 15.03.2019 06:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
772
1

Ответы 1

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

https://github.com/wxxsw/GSImageViewerController

https://github.com/hyperoslo/лайтбокс

Другие вопросы по теме