Guten Morgenmeine Tabellenansicht die ausgewählten Zellen wiederverwendet werden, wenn Scroll - in SWIFT
mein Problem ist, dass meine Tabellenansicht die ausgewählte Zelle wieder verwenden, wenn ich nach unten scrollen und wieder .. ich meine, wenn ich eine Zelle wählen Sie aus Dann scrolle ich nach unten, einige Zellen, die ich nicht ausgewählt habe, sind ausgewählt, auch einige ausgewählte Zellen von oben werden nicht ausgewählt, wenn ich wieder hoch scrolle, und wenn das passiert, bin ich wieder Apfel, um mehr als nur eine Zelle auszuwählen, die nicht sein muss erlaubt .. ich erwähnen möchte, dass ich versuchte, den alten Index-Pfad zu retten ‚didSelectRowAtIndexPath'and i es so in das aufgegebene‘ CellForRowAtIndexPath'but es nicht funktioniert:
if (old == indexpath)
{
cell?.backgroundColor = UIColor.redColor()
cell?.textLabel?.backgroundColor = UIColor.whiteColor() //to change only the thumbnail color and keep the cell color
}
else {
cell?.backgroundColor = UIColor.whiteColor()
}
hier nun mein Code
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = myTable.dequeueReusableCellWithIdentifier("WorkCell") as UITableViewCell
cell.tag = (indexPath.row) + 1
cell.textLabel?.text = Berufs[indexPath.row]
var img = UIImageView(frame: CGRect(x: 10, y: 3, width: 40 , height: 40))
cell.selectionStyle = UITableViewCellSelectionStyle.None
img.image = UIImage(named: "transparent.png")
cell.indentationLevel = 1
cell.indentationWidth = 45
cell.addSubview(img)
return cell
}
var old = 1000
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
let indexPath = tableView.indexPathForSelectedRow()
let cell = tableView.cellForRowAtIndexPath(indexPath!)
var tmpCell = view.viewWithTag(old)
var rowNum = (cell?.tag)! - 1
if (cell?.backgroundColor == UIColor.redColor())
{
cell?.backgroundColor = UIColor.whiteColor()
}
else if (cell?.backgroundColor != UIColor.redColor())
{
tmpCell?.backgroundColor = UIColor.whiteColor()
cell?.backgroundColor = UIColor.redColor()
cell?.textLabel?.backgroundColor = UIColor.whiteColor()
println("du interssiert dich für \(Berufs[rowNum])")
}
old = rowNum + 1
}
funktioniert wie ein Charme * __ * thankssssssss –
Diese Antwort ist großartig und funktioniert wie ein Charme, aber warum haben Sie vor einigen der Funktionen überschrieben? Solange der Controller UITableViewDelegate implementiert, sollte man nur die Funktion aber kein "Override" haben? –
danke U habe mir auch meine Zeit gerettet :) – user1553381