>已解决 - 请参阅达伦对此问题的工作解决方案的回应。
您好,感谢您抽出宝贵时间阅读我的问题。
我在检测IBAction UIButton
释放时遇到了一些奇怪的行为:当我在界面上移动手掌时,检测到按钮按下,但没有释放!
我有一组控件,每个控件都有自己的IBAction UIButton
。下面是我的按钮如何反应和行为的示例:
- (IBAction)up1start:(id)sender
{
if(!buttonIsPressed && deviceIsConnected)
{
NSLog(@"BUTTON UP 1 PRESSED!");
NSString *byteString = @"7E 01";
sendTimer =[NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(sendByte:) userInfo:byteString repeats:YES];
buttonIsPressed = true;
}else{
NSLog(@"Cant press two buttons or connection is closed");
}
}
- (IBAction)up1stop:(id)sender
{
NSLog(@"BUTTON UP 1 RELEASED!");
[ self buttonRelease ];
}
我有以下事件附加到UIButton up1
- 由于我正在进行的故障排除工作,可能比必要的事件更多:
- 向下着陆 -
up1start
- 触摸拖动退出 -
up1stop
- 触摸向外拖动 -
up1stop
- 内部修饰 -
up1stop
- 在外面修饰 -
up1stop
我在这里有点困惑,这些事件都没有导致我的"up1stop"操作被触发。同样,我可以通过将手掌按在界面上然后松开或稍微移动来重现此问题。作为记录,我已经为每个按钮启用了 exclusiveTouch。
其他一切都运行良好,我确实必须尝试让这种行为发生,但是考虑到应用程序的性质,如果不解决这个问题,对用户来说将是令人难以置信的不安全。
谁能解释为什么当我"手掌"屏幕时没有检测到按钮释放?
干杯!
跟踪UIControlEventTouchCancel
事件。
如果 中的初始触摸被重新解释为另一个手势(如滚动),则会发生UIControlEventTouchCancel
事件。