Nun, ich denke, es am besten ist, zu zeigen, was ich meine:Was ist los mit der Größe von UIButtons Touch Drag/Exit-Trefferbereich?
Man kann deutlich sehen, dass, wenn wir auf den Knopf und zogen es aus berührt haben, ein konsequentes Einzug in Ereignis löst die Knopfzustandswechsel von weit weg.
Während dieses Verhalten für alle UIButtons natürlich ist, konnte ich keine Lösung googlen, um es zu ändern.
Gibt es eine Möglichkeit, den Trefferbereich für diese Art von UIButton-Empfindlichkeit zu reduzieren? Ich möchte, dass es reduziert wird, weil ich denke, dass der Knopf groß genug ist, wie es ist, und es wird eine bessere Benutzererfahrung zusammen mit Up/Down-Soundeffekten bieten.
UPD: Die folgende Aufhebungscode für UIButton wurde in another thread geschrieben:
- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event
{
CGFloat boundsExtension = 25.0f;
CGRect outerBounds = CGRectInset(self.bounds, -1 * boundsExtension, -1 * boundsExtension);
BOOL touchOutside = !CGRectContainsPoint(outerBounds, [touch locationInView:self]);
if(touchOutside)
{
BOOL previousTouchInside = CGRectContainsPoint(outerBounds, [touch previousLocationInView:self]);
if(previousTouchInside)
{
NSLog(@"Sending UIControlEventTouchDragExit");
[self sendActionsForControlEvents:UIControlEventTouchDragExit];
}
else
{
NSLog(@"Sending UIControlEventTouchDragOutside");
[self sendActionsForControlEvents:UIControlEventTouchDragOutside];
}
}
return [super continueTrackingWithTouch:touch withEvent:event];
}
Es ändert die Erweiterung Trefferfläche durch Ziehen verwendet In/Out Ereignisse Ziehen, doch Taste Up/Down Zustände wechseln genau genauso wie zuvor.
scheint wie ein Duplikat dieser Frage: http://stackoverflow.com/questions/14340122/uicontroleventtouchdragexit-triggers-when-100-pixels-away- from-uibutton –
Ja, fast, aber die dort zur Verfügung gestellte Antwort ändert nicht die Taste Up/Down. Sie scheinen auf etwas anderes mit 100.0f Trefferbereichserweiterung angewiesen zu sein. – Kai