Ich habe einen etwas anderen Ansatz als alle anderen, der die Auswahl bei der Berührung und nicht erst nach der Auswahl berücksichtigt. Ich habe eine subclassed UITableViewCell. Alles, was Sie tun müssen, ist die Hintergrundfarbe in den Touch-Ereignissen zu setzen, die die Auswahl bei Berührung simuliert, und dann die Hintergrundfarbe in der setSelected-Funktion zu setzen. Das Setzen der Hintergrundfarbe in der selSelected-Funktion ermöglicht das Abwählen der Zelle. Stellen Sie sicher, dass Sie das Berührungsereignis an die Superfunktion weitergeben, da sich die Zelle sonst nicht wirklich so verhält, als wäre sie ausgewählt.
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.backgroundColor = UIColor(white: 0.0, alpha: 0.1)
super.touchesBegan(touches, withEvent: event)
}
override func touchesCancelled(touches: NSSet!, withEvent event: UIEvent!) {
self.backgroundColor = UIColor.clearColor()
super.touchesCancelled(touches, withEvent: event)
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
self.backgroundColor = selected ? UIColor(white: 0.0, alpha: 0.1) : UIColor.clearColor()
}