所以我已經實現了1指長按手勢識別器,但識別器似乎總是缺少UIGestureRecognizerStateBegan狀態...如果我長時間按住w/o移動手指並擡起,我會得到StateEnded調試消息。 如果我長按並移動手指然後擡起,我會得到StateChanged和StateEnded調試消息。 但我從來沒有見過StateBegan。UILongPressGestureRecognizer缺少UIGestureRecognizerStateBegan狀態!
UIPanGestureRecognizer沒有這個問題 - Pan從開始 - >改變 - >結束獲取所有正確的手勢狀態。
- (void)handleLongPress:(UILongPressGestureRecognizer *)recognizer {
CGPoint location = [recognizer locationInView:self];
switch (recognizer.state) {
case UIGestureRecognizerStateBegan:
NSLog(@"!!!!handleLongPress: StateBegan !!!!!");
break;
case UIGestureRecognizerStateChanged:
NSLog(@"!!!!handleLongPress: StateChanged !!!!!");
break;
case UIGestureRecognizerStateEnded:
NSLog(@"!!!!handleLongPress: StateEnded !!!!!");
break;
default:
break;
}
}
你的代碼似乎對我來說工作得很好。你是否在你的龍頭和平底手勢識別器之間設置了任何類型的依賴關係,或者你在該視圖上是否還有其他識別器? – 2010-07-27 02:10:05
我的任何手勢識別器之間沒有依賴關係。是的,我對這個觀點有幾個認識者。我被難住了...... :( – annie 2010-07-27 02:39:48