Hier ist Code, der ein Vollbild erzeugt (mit schwarzen Balken Seitenverhältnis zu erhalten), wenn ein Bild angeklickt wird.
Um dies zu nutzen, diesen Code zu Ihrem Viewcontroller hinzufügen, die das Bild enthält.
Dann für Ihre Imageview, die Sie erweitern möchten, markieren Sie das Kästchen für userInteractionEnabled im Attribute Inspector, und fügen Sie einen TapGestureRecognizer es und legen Sie es imageTapped
nennen.
@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()
}
Dieser Code funktioniert, indem eine neue Vollbild-Bild zu schaffen, die alles andere überdeckt. Es hat seine eigenen TapGestureRecognizer, die das Vollbild-Bild von seiner superview entfernt (und damit den ursprünglichen Bildschirm deckt).
Update für Swift 3 und 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()
}
Ist diese Arbeit für Bildansichten innerhalb Tabellenansicht Zelle ?? – WoShiNiBaBa
@WoShiNiBaBa, ich verstehe nicht warum nicht. Sie sollten ** userInteractionEnabled ** für die 'UIImageView' in Ihrer Zelle setzen und den' UITapGestureRecognizer' programmatisch in 'cellForRowAt' hinzufügen. – vacawama
Wie verbindest du deinen Code mit einem Bild? –