私はUILongPressGestureRecognizerクラスを使用して、1つのアイテムが選択されている場合に処理します。UILongPressGestureRecognizerは止まることなくハンドルを停止します
ロジックは次のとおりです。ユーザが項目を1秒間押す(UIViewサブクラス)。ジェスチャーが検出されると、項目は強調表示され、移動可能になります。
ユーザーは、このアイテムをタッチすることなく画面全体に移動する必要があります。
私が直面している問題は、動きを整理するためにアイテムクラスに必要な、ジェスチャー認識されたシャドウtouchesBegan/Move/Endedです。
一度認識されたジェスチャーと選択されたアイテムを削除しようとしました。しかし、まだジェスチャーのハンドルにメッセージを送信するのではなく、メソッドにコールを渡します。
誰でも、画面の指を離さずにジェスチャ認識機能を「聴いて」いることを知ることはできますか?
ありがとうございました。ここで
コード:
-(void)addGestures
{
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = iItemLongPressTime;
[self addGestureRecognizer:longPress];
[longPress release];
}
- (void)handleLongPress:(UILongPressGestureRecognizer*)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"Long press Ended");
}
else {
if (self.isSelected) return;
if ([delegate respondsToSelector:@selector(singleTouch:)])
[delegate singleTouch:self];
[self removeGestureRecognizer:[self.gestureRecognizers objectAtIndex:0]];
NSLog(@"Long press detected.");
}
}
あなたが他の枝にデリゲートの呼び出しを見ることができるように、選択したとして、この項目をマークし、直後の認識機能を削除するために、すべての手続きができます。
私が紛失していることはありますか?
- EDIT_
完了!これは動作します:
#pragma mark Gesture Functions
-(void)addGestures
{
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleLongPress:)];
longPress.minimumPressDuration = iItemLongPressTime;
[self addGestureRecognizer:longPress];
[longPress release];
}
- (void)handleLongPress:(UILongPressGestureRecognizer*)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"Long press Ended");
}
else {
NSLog(@"Long press detected.");
if (self.isSelected) return;
if ([delegate respondsToSelector:@selector(singleTouch:)])
[delegate singleTouch:self];
[sender removeTarget:self action:@selector(handleLongPress:)];
sender.enabled = NO;
[self removeGestureRecognizer:sender];
}
}
よろしく!
詳細について質問してください。 –
送信側のメソッドをパラメータとして削除しようとしましたが、まだ動作していません。 – NemeSys
私は自分の答えを編集しました... –