14

画面に UISlider があり、ユーザーが触れなくなったことを検出できるようにする必要があります。(そのため、いくつかの要素をフェードアウトできます)。

私は使用してみました:

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

しかし、これはスライダーのタッチを終了するときに機能しませんでした。

4

3 に答える 3

19

2 つのコントロール イベントを使用して、タッチの終了を検出できます。試す

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

また

[slider addTarget:self action:@selector(touchEnded:) 
                       forControlEvents:UIControlEventTouchUpOutside];

touchesEnd両方のタイプのイベントを検出したい場合は、

[slider addTarget:self action:@selector(touchEnded:) 
   forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
于 2012-06-10T18:46:40.210 に答える
6

を使用する代わりにtouchesEnded:(とにかくこの目的で使用するべきではありません)、アクションをUISliderUIControlEventValueChangedイベントにアタッチし、 のcontinuousプロパティをUISlidertoに設定しNOて、ユーザーが値の選択を終了したときにイベントが発生するようにします。

mySlider.continuous = NO;
[mySlider addTarget:self
          action:@selector(myMethodThatFadesObjects) 
          forControlEvents:UIControlEventValueChanged];
于 2012-06-10T18:25:38.743 に答える