似乎 UIButton 的UIControlEventTouchDragInside和UIControlEventTouchDragOutside阈值超出了按钮框架的某个未知量。这个距离似乎大约是手指宽度的大小。有没有办法让这个阈值成为没有这个手指宽度缓冲区的实际帧/边界?
这在 iPad 上不是问题,但在 iPhone 和较小的空间上,它会导致我的自定义控件偶尔工作。
谢谢
似乎 UIButton 的UIControlEventTouchDragInside和UIControlEventTouchDragOutside阈值超出了按钮框架的某个未知量。这个距离似乎大约是手指宽度的大小。有没有办法让这个阈值成为没有这个手指宽度缓冲区的实际帧/边界?
这在 iPad 上不是问题,但在 iPhone 和较小的空间上,它会导致我的自定义控件偶尔工作。
谢谢
作为一种解决方法,我正在执行以下操作。
我已经更改了UIControlEventTouchUpInside和UIControlEventTouchUpOutside的处理程序。
-(IBAction)myButtonsUpInside:(id)sender event:(UIEvent*)event
和
-(IBAction)myButtonsUpOutside:(id)sender event:(UIEvent*)event
to 首先检查是否应该将事件作为不同的按钮处理。像这样:
NSArray* theTouches = [[event allTouches] allObjects];
UITouch* touch = [theTouches objectAtIndex:0];
if([btnMyOtherButton pointInside:[touch locationInView:btnMyOtherButton] withEvent:event])
//Call myOtherButton's action.
//Otherwise do this button's action.
你也可以用UIControlEventTouchDragInside和UIControlEventTouchDragOutside处理程序做同样的事情来做类似的事情。我只需要在修饰事件上采取行动。
仍然想知道是否有人有任何其他解决方案来摆脱这个奇怪的缓冲区。