Ich möchte, dass mein Bild, das in meiner Tabellenansicht Zelle vollständig gescreent wird, wenn Sie wie von einem uigesture_recognizer angezapft angezapft wird.Vollbild ein Bild in einer Tabellenansicht Zelle, wenn angezapft Swift
Das Problem ist, dass meine didSelectRowAt-Funktion den postedimage
Bezeichner nicht erkennt.
Verwendung von ungelösten Bezeichner 'postedImage'
Wie kann ich um dieses Problem zu bekommen?
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! FeedTableViewCell
imageFiles[indexPath.row].getDataInBackground { (data, error) in
if let imageData = data {
if let downloadedImage = UIImage(data: imageData) {
cell.postedImage.image = downloadedImage
}
}
}
cell.postedImage.image = UIImage(named: "test.png")
return cell
}
func removeImage() {
let imageView = (self.view.viewWithTag(100)! as! UIImageView)
imageView.removeFromSuperview()
}
func addImageViewWithImage(image: UIImage) {
let imageView = UIImageView(frame: self.view.frame)
imageView.contentMode = .scaleAspectFit
imageView.backgroundColor = UIColor.black
imageView.image! = image
imageView.tag = 100
let dismissTap = UITapGestureRecognizer(target: self, action: #selector(self.removeImage))
dismissTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(dismissTap)
self.view.addSubview(imageView)
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.addImageViewWithImage(image: postedImage[indexPath.row])
}
Aktie mehr Informationen, wenn dies nicht hilft. –
Dies erlaubt mir, das Bild zu öffnen, aber wenn ich erneut tippe, um das Bild zu schließen, geht das Bild zum nächsten Bild im Array. Auch ich habe vergessen zu erwähnen, dass 'imageView.image! = image' sollte 'imageView.image = image' sein. –
@JackRichards, die passiert, weil beim Tippen auf Ihre Didselect-Methode erneut ausgelöst wird, da sie Vorrang vor der Tippgeste hat. Sie müssen eine andere Logik hinzufügen, die grundsätzlich überprüft, ob das Bild geöffnet ist und wenn ja, dann schließen Sie das Bild oder was auch immer Sie tun möchten. Vielleicht benutzen Sie ein paar Flaggen. –