Pour l'application que je crée, je veux que l'utilisateur puisse cliquer sur une image pour la faire en plein écran sur l'application. Et puis l'utilisateur de pouvoir cliquer sur l'image maintenant en plein écran pour lui donner la taille d'origine.
Est-ce possible?
Toute aide serait formidable, je suis juste un débutant apprenant sur xcode et je suis intéressé à savoir comment faire cela.
Voici le code qui crée une image en plein écran (avec des barres noires pour conserver les proportions) quand une image est cliquée.
Pour l'utiliser, ajoutez ce code à votre ViewController qui contient l'image.
Ensuite, pour votre imageView que vous souhaitez développer, cochez la case serInteractionEnabled dans l'inspecteur d'attributs , et ajoutez un TapGestureRecognizer et définissez-le appelez imageTapped
.
@IBAction func imageTapped(sender: UITapGestureRecognizer) {
let imageView = sender.view as! UIImageView
let newImageView = UIImageView(image: imageView.image)
newImageView.frame = UIScreen.main.bounds
newImageView.backgroundColor = .blackColor()
newImageView.contentMode = .ScaleAspectFit
newImageView.userInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: "dismissFullscreenImage:")
newImageView.addGestureRecognizer(tap)
self.view.addSubview(newImageView)
self.navigationController?.isNavigationBarHidden = true
self.tabBarController?.tabBar.isHidden = true
}
func dismissFullscreenImage(sender: UITapGestureRecognizer) {
self.navigationController?.isNavigationBarHidden = false
self.tabBarController?.tabBar.isHidden = false
sender.view?.removeFromSuperview()
}
Ce code fonctionne en créant une nouvelle image plein écran qui couvre tout le reste. Il a son propre TapGestureRecognizer qui supprime l'image plein écran de sa superView (et découvre ainsi l'écran d'origine).
Mise à jour pour Swift 3 et 4:
@IBAction func imageTapped(_ sender: UITapGestureRecognizer) {
let imageView = sender.view as! UIImageView
let newImageView = UIImageView(image: imageView.image)
newImageView.frame = UIScreen.main.bounds
newImageView.backgroundColor = .black
newImageView.contentMode = .scaleAspectFit
newImageView.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage))
newImageView.addGestureRecognizer(tap)
self.view.addSubview(newImageView)
self.navigationController?.isNavigationBarHidden = true
self.tabBarController?.tabBar.isHidden = true
}
@objc func dismissFullscreenImage(_ sender: UITapGestureRecognizer) {
self.navigationController?.isNavigationBarHidden = false
self.tabBarController?.tabBar.isHidden = false
sender.view?.removeFromSuperview()
}