Ich schreibe einen UISwitch-Ersatz (mit benutzerdefinierten Grafiken). Ich habe touchesMoved und friends außer Kraft gesetzt, so dass Sie das Widget zwischen Yes und No ziehen können, genau wie bei UISwitch.
Wenn Sie ihn in einer Scroll-Ansicht platzieren, werden Berührungen abgebrochen, wenn der Benutzer seinen Finger auch nur ein kleines bisschen diagonal statt perfekt horizontal bewegt, und das Scrollen setzt stattdessen ein. Ich habe festgestellt, dass UISwitch und UIButton dieses Verhalten nicht zeigen und der Bildlauf nie einsetzt, wenn diese Steuerelemente bedient werden.
Wie kann ich UIKit sagen, dass ich exklusive Kontrolle über diese Berührungen, in der Tat deaktivieren Sie scroll in touchesBegan und aktivieren Sie scroll in beendet/abgebrochen? Ich bin sicher, es gibt etwas offensichtlich, aber ich habe durch die Header und Dokumentation für UIControl, UIResponder, UIView und UIScrollView gesucht und habe nichts gefunden.
Hinweis: Ich möchte keine UIScrollView-Unterklasse erstellen; ich kann mir nicht vorstellen, dass das die richtige Lösung ist, das Steuerelement sollte völlig eigenständig sein.