ребята!Я делаю приложение, как мессенджер, где я могу отправлять / получать изображения.После нажатия на изображение, оно должно быть открыто в другом контроллере (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
Пожалуйста, любая помощь будет оценена.