2

似乎 UIButton 的UIControlEventTouchDragInsideUIControlEventTouchDragOutside阈值超出了按钮框架的某个未知量。这个距离似乎大约是手指宽度的大小。有没有办法让这个阈值成为没有这个手指宽度缓冲区的实际帧/边界?

这在 iPad 上不是问题,但在 iPhone 和较小的空间上,它会导致我的自定义控件偶尔工作。

谢谢

4

1 回答 1

3

作为一种解决方法,我正在执行以下操作。

我已经更改了UIControlEventTouchUpInsideUIControlEventTouchUpOutside的处理程序。

-(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.

你也可以用UIControlEventTouchDragInsideUIControlEventTouchDragOutside处理程序做同样的事情来做类似的事情。我只需要在修饰事件上采取行动。

仍然想知道是否有人有任何其他解决方案来摆脱这个奇怪的缓冲区。

于 2012-11-23T20:26:17.620 回答