Questo è il codice che crea un'immagine a schermo intero (con barre nere per conservare le proporzioni) quando si fa clic sull'immagine.
Per utilizzare questo, aggiungere questo codice al ViewController che contiene l'immagine.
Poi, per il vostro ImageView che si desidera espandere, selezionare la casella per userInteractionEnabled nel Attributi, e aggiungere un TapGestureRecognizer ad esso e lo mise chiamare 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()
}
Questo codice si basa sulla creazione di una nuova immagine a tutto schermo che copre tutto il resto. Ha il proprio TapGestureRecognizer che rimuove l'immagine a schermo intero dalla sua superView (e quindi scopre lo schermo originale).
Aggiornamento per Swift 3 e 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()
}
Fa questo lavoro per le viste di immagini all'interno delle cellule vista tabella ?? – WoShiNiBaBa
@WoShiNiBaBa, non vedo perché no. Dovresti impostare ** userInteractionEnabled ** per 'UIImageView' nella tua cella e aggiungere' UITapGestureRecognizer' a livello di codice in 'cellForRowAt'. – vacawama
Come si collega il codice a un'immagine? –