Ich habe versucht, dies jetzt für eine Weile herauszufinden und nach ein paar Stunden Suche nach einer Lösung entschied ich, dass es Zeit war zu fragen.Segle von UITableViewCell durch Tippen auf ein Bild innerhalb der Zelle
Ich habe eine Tabellenansicht, die von benutzerdefinierten UITableViewCells gefüllt wird und derzeit, wenn Sie auf eine Zelle tippen, führt es Sie zu einer Detailansicht.
Innerhalb der benutzerdefinierten Zelle gibt es ein Bild, ich möchte, dass der Benutzer in der Lage ist, auf das Bild zu tippen und zu einem Popover-VC zu wechseln, das das Bild zeigt.
Worauf ich Probleme habe, ist die Erstellung des Segments, wenn das Bild angetippt wird.
override func awakeFromNib() {
super.awakeFromNib()
let tap = UITapGestureRecognizer(target: self, action: #selector(PostCell.voteTapped(_:)))
let ptap = UITapGestureRecognizer(target: self, action: #selector(PostCell.imageTapped(_:)))
tap.numberOfTapsRequired = 1
ptap.numberOfTapsRequired = 1
voteImage.addGestureRecognizer(tap)
voteImage.userInteractionEnabled = true
featuredImg.addGestureRecognizer(ptap)
featuredImg.userInteractionEnabled = true
}
ich auch eine Funktion in der benutzerdefinierten Zelle Datei für:
In der Datei für die benutzerdefinierte Zelle, ich habe eine Anzapfung Gestenerkenner auf das Bild (PTAP) einrichten die Hahn:
func imageTapped(sender: UIGestureRecognizer) {
print("image tapped")
}
in meiner Ansicht-Controller-Datei habe ich eine segue in gelegt hat, Zeile an dem Indexpfad hinzugefügt:
Auch im Storyboard habe ich einen Übergang von der VC erstellt, der die Tabellenansicht mit den benutzerdefinierten Zellen an die VC hält, die ich zeigen möchte, wenn das Bild angetippt wird.
Ich habe mehrere verschiedene Methoden ausprobiert, um dies zum Funktionieren zu bringen und habe kein Glück gehabt, der Code, den Sie oben sehen, ist, was nach meinen vielen gescheiterten Versuchen bleibt. Ich fühle, dass die Funktion für den Wasserhahn in der benutzerdefinierten Zelle Datei und das Segment in der VC-Datei ein Teil der Lösung sind, deshalb habe ich sie in verlassen.
Jede Hilfe wäre willkommen. Vielen Dank!
Added Protokoll
protocol ImageSegueProtocol: class {
func imageTapped(row: Int)
}
class PostCell: UITableViewCell {
Added IAB Func
@IBAction func imageTapped(sender: UIGestureRecognizer) {
guard let row = row else { return }
delegate?.imageTapped(row)
print("image tapped func")
}
erklärt Delegierter im Haupt VC
weak var delegate:postCell?
Assigned Del:
Updates von Antworten unten codieren Tor
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//let post = posts[indexPath.row]
if let cell = tableView.dequeueReusableCellWithIdentifier("PostCell") as? PostCell {
var img: UIImage?
var vImg: UIImage?
postCell?.delegate = self
Added Erweiterungsfunktion
extension FeedVC: ImageSegueProtocol {
func imageTapped(row: Int) {
if inSearchMode == true {
let object = filteredVenues[row]
performSegueWithIdentifier("imageTapped", sender: object)
print("ext func")
} else {
let object = posts[row]
performSegueWithIdentifier("imageTapped", sender: object)
print("ext func")
}
}
Haben Sie einen Delegaten auf dem Tisch Sichtzelle erstellt? –
Hey Ran, nein ich habe nicht – ryanbilak