Я использую UISwitch
в PFTableView
. Когда я включаю один UISwitch, он запускает другой переключатель в другой ячейке. Вот код для PFTableViewCell
.UISwtich запускает другое событие UISwitch в UITableView
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject ?) - > PFTableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("tempHsCell") as!NearestHsCell!
if cell == nil {
cell = NearestHsCell(style: UITableViewCellStyle.Default, reuseIdentifier: "tempHsCell")
}
/*Assign Object to cell*/
cell.hotspot = object
return cell
}
// Code for UISwtich Action
@
IBAction func userSelectHotspot(sender: UISwitch) {
if hotspotSwitch.on {
selectedHotspot[(self._hotspot ? .objectId) !] = self._hotspot
} else {
let key = self._hotspot!.objectId!
selectedHotspot.removeValueForKey(key)
}
}
вы должны контролировать свой переключатель, сохраняя свое состояние переключателя в объект ячейки вместо давая ему по умолчанию, то 'dequeueReusableCellWithIdentifier' вещи перекрывают свой некоммерческий кодированный переключатель, там может быть другой способ сделать, но им не уверен: D – Tj3n
Включены ли оба переключателя на экране, когда это происходит, или вам нужно прокрутить, чтобы обнаружить неисправный переключатель? Если это так, это из-за повторного использования клеток, как говорили другие. Вы должны каждый раз переустанавливать ячейки в чистое состояние. В идеале, присваивание свойства 'hotspot' может позаботиться об обновлении состояния ячейки с помощью наблюдателя свойств. –
@NicolasMiari Мне нужно прокрутить вниз, чтобы посмотреть второй переключатель. Но код находится в IBAction. Можете ли вы прокомментировать свой ответ в коде. –