/// Shown when the user taps a profile picture in the conversation settings. @objc(SNProfilePictureVC) final class ProfilePictureVC : BaseVC { private let image: UIImage private let snTitle: String @objc init(image: UIImage, title: String) { self.image = image self.snTitle = title super.init(nibName: nil, bundle: nil) } override init(nibName: String?, bundle: Bundle?) { preconditionFailure("Use init(image:) instead.") } required init?(coder: NSCoder) { preconditionFailure("Use init(coder:) instead.") } override func viewDidLoad() { view.backgroundColor = .clear setUpGradientBackground() setUpNavBarStyle() setNavBarTitle(snTitle) // Close button let closeButton = UIBarButtonItem(image: #imageLiteral(resourceName: "X"), style: .plain, target: self, action: #selector(close)) closeButton.tintColor = Colors.text navigationItem.leftBarButtonItem = closeButton // Image view let imageView = UIImageView(image: image) let size = UIScreen.main.bounds.width - 2 * Values.largeSpacing imageView.set(.width, to: size) imageView.set(.height, to: size) imageView.layer.cornerRadius = size / 2 imageView.layer.masksToBounds = true view.addSubview(imageView) imageView.center(in: view) // Gesture recognizer let swipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(close)) swipeGestureRecognizer.direction = .down view.addGestureRecognizer(swipeGestureRecognizer) } @objc private func close() { presentingViewController?.dismiss(animated: true, completion: nil) } }