似乎UIButton的UIControlEventTouchDragInside和UIControlEventTouchDragOutside阈值在按钮框架之外,超出了未知数量。这个距离似乎大约是手指宽度的大小。有没有什么方法可以使此阈值成为没有此手指宽度缓冲区的实际帧/边界?
在iPad上这不是问题,但在iPhone和较小的房地产上,这偶尔会导致我的自定义控件工作。
谢谢
最佳答案
作为一种解决方法,我正在执行以下操作。
我已经更改了UIControlEventTouchUpInside和UIControlEventTouchUpOutside的处理程序。
-(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.
您还可以使用UIControlEventTouchDragInside和UIControlEventTouchDragOutside处理程序执行相同的操作,以执行类似的操作。我只需要在触摸事件上进行操作即可。
仍然想知道是否有人可以摆脱这种奇怪的缓冲区。
关于iphone - 如何获取UIButton的UIControlTouchDragInside和UIControlTouchDragOutside阈值作为框架?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13535169/