已解決 - 請看Darren對此問題的解決方案的迴應。iPhone:按鈕觸摸事件 - 發佈不觸發?
您好,感謝您花時間閱讀我的問題。
我在檢測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
- 要UCH將外 -
up1stop
- 觸摸的內心 -
up1stop
- 潤色外 -
up1stop
我有點難倒這裏就如何沒有這些事件導致我的「 up1stop「動作被觸發。再次,我可以通過將手掌按在界面上然後釋放或略微移動來重現此問題。爲了記錄,我爲每個按鈕啓用了exclusiveTouch。
其他所有工作都很完美,我必須嘗試才能使此行爲發生,但考慮到應用程序的性質,如果未解決該問題,它對用戶來說是非常不安全的。
任何人都可以解釋爲什麼按鈕釋放沒有被檢測到時,我'掌'屏幕?
乾杯!
up1stop方法在正常按下按鈕時觸發,而不是用手掌觸發? – Msencenb
@Minnb - 確實如此。除了這個小錯誤之外,所有的工作都完美無瑕,我可以看似破壞應用程序對我正在執行的操作的理解。我選擇了一個響應,低於該響應證明是我正在尋找的解決方案。通過「掌控」界面,應用程序將我的操作解釋爲「按下」,然後是「滾動」,這不會導致我已經附加的事件發生。通過爲每個「停止」操作添加「UIControlEventTouchCancel」,問題已解決。 –