iPhone:按键触摸事件 - 发布不触发?

Joh*_*all 1 iphone cocoa-touch uibutton ios

已解决 - 请看Darren对此问题的工作决议的回应.

您好,感谢您抽出宝贵时间阅读我的问题.

检测到释放时,我遇到了一些奇怪的行为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 ];
}
Run Code Online (Sandbox Code Playgroud)

我附加了以下事件UIButton up1- 由于我正在进行的故障排除工作,可能需要更多:

  • 触摸 -up1start
  • 触摸拖动退出 -up1stop
  • 触摸拖动外 -up1stop
  • 触摸内部 -up1stop
  • 触摸外面 -up1stop

我有点难过这些事件是如何导致我的"up1stop"动作被触发的.再次,我可以通过将手掌按在界面上然后松开或轻微移动来重现此问题.为了记录,我为每个按钮启用了exclusiveTouch.

其他一切工作都很完美,我必须尝试让这种行为发生,但是考虑到应用程序的性质,如果没有解决这个问题对用户来说是非常不安全的.

任何人都可以解释为什么当我'掌上'屏幕时没有检测到按钮释放?

干杯!

Dar*_*ren 5

你想跟踪这个UIControlEventTouchCancel事件.

UIControlEventTouchCancel如果初始触摸在重新解释为另一手势,诸如滚动发生的事件.