Ich habe vor kurzem begonnen, iOS-Entwicklung zu lernen, und ich stieß auf einige Probleme.Wie zeigt man die benutzerdefinierte Ansicht in UITableviewCell, wenn die Taste gedrückt wird?
Ich habe eine Tabellenansicht mit benutzerdefinierten Zelle: Label, Bildansicht (standardmäßig ausgeblendet) und eine Schaltfläche. Ich möchte, dass es so funktioniert, dass wenn die Schaltfläche für die Zelle angeklickt wird, die Bildansicht angezeigt wird. Das Problem ist, dass bei jeder Wiederverwendung der Zelle die Bildansicht für die wiederverwendete Zelle angezeigt wird. Ich möchte es zu arbeiten, so dass, wenn die Taste für die erste Zelle gedrückt wird, nur die erste Zellen Bildansicht angezeigt wird. Wenn die Schaltfläche für die erste und dritte Zelle gedrückt wird, sollte die Bildansicht NUR für die erste und dritte Zeile und nicht für eine andere Zeile angezeigt werden.
Meine aktuelle Lösung:
class CustomTableViewCell: UITableViewCell {
@IBOutlet var cellTitleLabel: UILabel!
@IBOutlet var cellImageView: UIImageView!
var showImageView = false
@IBAction func showImageViewAction(sender: UIButton) {
showImageView = true
displayCell()
}
func displayCell() {
if showImageView {
cellImageView.hidden = false
} else {
cellImageView.hidden = true
}
}
}
Und für den View-Controller:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 30
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! CustomTableViewCell
return cell
}
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let customCell = cell as! CustomTableViewCell
customCell.displayCell()
}
Vorschläge, wie dies zu schaffen, dass das Bild nicht sichtbar wird, wenn die Zelle wiederverwendet wird?
So anpassen, wenn Sie auf die Schaltfläche tippen, wird die Bildansicht auf allen 30 Zellen zeigt nach oben? –
Nein. Momentan, wenn ich auf den Knopf für die erste Zelle tippe, erscheint die Bildansicht für die folgenden Zellen: 1, 6, 11, 16, 21 und 26. Ich nehme an, dass es wegen Zelle 6, 11, 16, 21 ist und 26 wiederverwendet die Zelle 1, wenn dequeueReusableCellWithIdentifier – user3489053
ich sehe aufgerufen wird. Können Sie zuerst die spezifische Zelle [indexPath.row] und dann das Bild für diese Zelle einblenden? –