Open2
アプリ作成中の知見

-
UIImageView
にidentifierをつけてやればOK
let IMAGE_VIEW_IDENTIFIER = "imageview-identifier"
import UIKit
import Hero
class ViewController: UIViewController {
// MARK: - Properties
private lazy var imageView: UIImageView = {
let iv = UIImageView()
iv.contentMode = .scaleAspectFill
iv.clipsToBounds = true
iv.layer.cornerRadius = 20
iv.image = UIImage(named: "01")
iv.hero.id = IMAGE_VIEW_IDENTIFIER
let tap = UITapGestureRecognizer(target: self, action: #selector(handleImageViewTapped))
iv.addGestureRecognizer(tap)
iv.isUserInteractionEnabled = true
return iv
}()
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
view.backgroundColor = .systemGray
configureUI()
}
// MARK: - Selectors
@objc func handleImageViewTapped() {
let nextViewController = ViewController2()
nextViewController.modalPresentationStyle = .fullScreen
self.present(nextViewController, animated: true, completion: nil)
}
// MARK: - Helpers
func configureUI() {
view.addSubview(imageView)
imageView.centerX(inView: view)
imageView.anchor(top: view.topAnchor, paddingTop: 20)
imageView.setDimensions(width: 100, height: 100)
}
}
import UIKit
class ViewController2: UIViewController {
// MARK: - Properties
private lazy var imageView: UIImageView = {
let iv = UIImageView()
iv.contentMode = .scaleAspectFill
iv.clipsToBounds = true
iv.layer.cornerRadius = 20
iv.image = UIImage(named: "01")
iv.hero.id = IMAGE_VIEW_IDENTIFIER
let tap = UITapGestureRecognizer(target: self, action: #selector(handleImageViewTapped))
iv.addGestureRecognizer(tap)
iv.isUserInteractionEnabled = true
return iv
}()
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
view.backgroundColor = .systemGray
configureUI()
}
// MARK: - Selectors
@objc func handleImageViewTapped() {
self.dismiss(animated: true, completion: nil)
}
// MARK: - Helpers
func configureUI() {
self.hero.isEnabled = true
view.addSubview(imageView)
imageView.center(inView: view)
imageView.anchor(left: view.leftAnchor, right: view.rightAnchor)
}
}