Ich habe eine benutzerdefinierte Schaltfläche und es ist eine statische Zelle hinzugefügt. Irgendwie, wenn ich auf den Knopf tippe, reagiert er nicht sofort wie wenn der Knopf zu einer normalen normalen Ansicht hinzugefügt wird.Schaltfläche in der Tabellenansicht Zelle
Wenn diese Taste angetippt wird, registriert sie sofort den Tap, aber die Hintergrundfarbe hat eine leichte Verzögerung, bevor sie geändert wird.
Um die Farbe Ich habe ändern Sie den folgenden Code in meiner Unterklasse von UIButton
:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
super.touchesBegan(touches, withEvent: event)
border.fillColor = .redColor() // border is a CAShapeLayer
print("began") // This prints right when the button is clicked
}
Diese Schaltfläche in einer Unterklasse von UITableViewCell
hinzugefügt wird und die Taste reagiert, mit Ausnahme des Farbwechsel hat eine verzögern. Wie kann ich das beheben?
Antwort (von Jelly):
Die Antwort von Jelly hat mir sehr geholfen und machte die Taste etwas besser reagieren. Zu wissen, was das Problem ist auch es leichter gemacht, um das Problem zu erforschen und zu erfahren die Taste reagiert so wie es in einer normalen Ansicht, die ich beide delaysContentTouches
in der Tabellenansicht deaktivieren muß und es ist Subviews:
tableView.delaysContentTouches = false
tableView.subviews.forEach { ($0 as? UIScrollView)?.delaysContentTouches = false }
Warum verwenden Sie nicht 'UIButton: addTarget' Methode anstelle von tippen – garanda