似乎UIButton的UIControlEventTouchDragInsideUIControlEventTouchDragOutside阈值在按钮框架之外,超出了未知数量。这个距离似乎大约是手指宽度的大小。有没有什么方法可以使此阈值成为没有此手指宽度缓冲区的实际帧/边界?

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

谢谢

最佳答案

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

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

-(IBAction)myButtonsUpInside:(id)sender event:(UIEvent*)event


-(IBAction)myButtonsUpOutside:(id)sender event:(UIEvent*)event

首先检查事件是否应该作为另一个按钮来处理。用这样的东西:
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处理程序执行相同的操作,以执行类似的操作。我只需要在触摸事件上进行操作即可。

仍然想知道是否有人可以摆脱这种奇怪的缓冲区。

关于iphone - 如何获取UIButton的UIControlTouchDragInside和UIControlTouchDragOutside阈值作为框架?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13535169/

10-09 16:25