Ich habe eine UITableView, die Prototyp cells
hat, die einen Schieberegler und eine textfield
daneben enthalten. Wenn sich der Schiebereglerwert ändert, wird auch der Wert in textview
geändert. Es funktioniert gut, außer wenn die Größe der Tabelle zunimmt, zeigt die neue cell
, die beim Herunterscrollen erzeugt wird, bereits den Wert der ersten Zelle an. Ich weiß, dass dies etwas mit der dequeueReusableCellWithIdentifier
Funktion zu tun hat, da die cells
wiederverwendet werden. Wie kann dies umgangen werden?Mit Schieberegler in benutzerdefinierten Zelle eines UITableView
Dies ist der Code:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("infoCell") as! InfoCell
cell.dressLabel.text = inputArrayFortableView[indexPath.row]
cell.uiSlider.maximumValue = 100
cell.uiSlider.minimumValue = 0
cell.uiSlider.continuous = true
cell.uiSlider.addTarget(cell, action: #selector(cell.uiSliderSetValue), forControlEvents: .ValueChanged)
if(cell.DressTextField.text != "")
{
cell.uiSlider.setValue(Float(cell.DressTextField.text!)!, animated: true)
}
print("outside uisliderSetvalue")
cell.uiSlider.tag = indexPath.row
print(cell.uiSlider.tag)
return cell
}
ich einen Screenshot bin Befestigung. Beachten Sie, dass beim Scrollen nach unten die neue Zelle den gleichen Wert wie die erste Zelle hat, die zweite Zelle den gleichen Wert wie die zweite Zelle hat und so weiter.
Zeigen Sie den Code von 'CellForRowAtIndexPath' ohne es zu wissen, dass Ihnen einer helfen wird. –