我在PFTableView
中使用UISwitch
。當我打開一個UISwitch時,它觸發不同單元中的另一個開關。這裏是PFTableViewCell
的代碼。UISwtich觸發UITableView中的另一個UISwitch事件
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
當這種情況發生時,兩個開關都在屏幕上,還是您必須滾動才能發現錯誤觸發的開關?如果是這樣,那是因爲其他人說的細胞再利用。您應該每次都將單元重置爲乾淨狀態。理想情況下,通過使用屬性觀察器來分配「熱點」屬性可以處理更新單元狀態。 –
@NicolasMiari我必須向下滾動才能看到第二個開關。但代碼在IBAction.Can請在代碼中詳細說明您的答案。 –