2012-04-27 8 views
1

スーパー簡単な質問を停止しました。これは動作し、親指は明らかにドラッグできますが、ドラッグイベントが停止したときに通知を受ける必要があります。ドラッグの停止とタップの停止を区別できるコントロールイベントがありますか?のiOSは、ドラッグを検出するには、私が上で困惑

touchesEnded:メソッドでこれを実行する簡単な方法がありますか?

何か助けていただければ幸いです。ありがとう。 ratingScaleが& slideEndsは、上記のイベントのために解雇されるためにあなたのサンプル選択になり、あなたのサンプルUISliderだろう

答えて

0
[ratingScale addTarget:self action:@selector(slideEnds:) forControlEvents:UIControlEventTouchDragInside]; 

dragDragInsideの条件では、ドラッグし続ける限り、セレクタが確実に起動されます。スライダの親指にタップを登録するだけでは起動しません。

+1

ドラッグした後に指を持ち上げて単にタッチした場合はどうすれば検出できますか? –

3

はこれを使用します。

[slider addTarget:self action:@selector(slidingStopped:)forControlEvents:UIControlEventTouchUpInside]; 

- (void) slidingStopped:(id)sender 
{ 
    NSLog(@"stopped sliding"); 
} 
+3

私はこれが古代だと知っていますが、これは完全ではありません。 UIControlEventTouchUpOutsideのメッセージも送信する必要があります。そうしないと、ユーザーが指をコントロール範囲外にドラッグして放して、メッセージを受け取れなくなります。 – FreaknBigPanda

+0

@FreaknBigPandaあなたが正しいです!私は編集を提案しました。 – tonytony

1

を私はこれは古い記事です知っているが、ここで私がやったことです。これは、UISliderの問題に適合させることができます。

BOOL buttonDidMove = NO; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [button addTarget:self action:@selector(buttonMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside]; 
    [button addTarget:self action:@selector(buttonTouchUpInside) forControlEvents: UIControlEventTouchUpInside]; 
    [button setTitle:@"Tap Me" forState:UIControlStateNormal]; 
    button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0); 
    button.backgroundColor = [UIColor yellowColor]; 
    [self.view addSubview:button]; 
} 

- (void)buttonTouchUpInside 
{ 
    if (buttonDidMove) { 
     buttonDidMove = NO; 
     return; 
    } 
    NSLog(@"buttonTouchUpInside"); 
    [self initNetworkCommunication]; 
} 

- (void)buttonMoved:(UIButton *)control withEvent:(UIEvent *)event 
{ 
    NSLog(@"buttonMoved"); 
    buttonDidMove = YES; 
    UITouch *touch = [[event touchesForView:control] anyObject]; 
    control.center = [touch locationInView:self.view]; 
} 

これが役に立ちます。

関連する問題