0

私はiOSが初めてで、タッチが終了したときにのみスライダーを反応させる方法を知りたいです。私は方法でそれを理解します:

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

しかし、私はそれを機能させることはできません。

誰でも簡単で明確な例で私を助けることができますか?

プログラムで答えてください。ストーリーボードは使用しません。

前もって感謝します!!!

4

4 に答える 4

1

ジェスチャ認識エンジンを追加できます:

 UITapGestureRecognizer *tapGestureRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onSliderTap:)] autorelease];
 [slider addGestureRecognizer:tapGestureRecognizer];

- (void)onSliderTap:(UIGestureRecognizer *)gestureRecognizer { 
   // handle event
}

またはスライダーにいくつかのアクションを追加します:

[slider addTarget:self action:@selector(onTouchEnded:) forControlEvents:UIControlEventTouchUpInside];
于 2013-04-14T08:53:15.183 に答える
0

答えが見つかりました!

これらの人は私を大いに助けてくれました: UISlider のタッチを検出しますか?

小さな精度で:

関連するスライダーのアクションは、彼に次のように割り当てられます。

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

メソッドのシグネチャは次のとおりです。

- (IBAction)touchEnded:(id) sender

ストーリーボードでは、アクションをスライダーに割り当てるのは少し違うようです。

答えてくれてありがとう!

于 2013-04-14T09:03:39.293 に答える
0

プロパティを連続的に設定する必要があります。

スライダー値の変更によって継続的な更新イベントが生成されるかどうかを示すブール値が含まれます。

mySlider.continuous= NO;
于 2013-04-14T11:31:42.870 に答える
0

代わりにUIControlEventTouchUpInsideandを接続できます (現在それを行っている場合)。-Outside-ValueChanged

編集:または、もう少しエレガントに言うと、を使用UIControlEventValueChangedしますが、イベントをメソッドのパラメーターとして提供します:

[self.slider addTarget:self action:@selector(handleValueChanged:withEvent:) forControlEvents:UIControlEventValueChanged];

そして、タッチの位相をチェックして、そのended状態にあるかどうかを確認します。

于 2013-04-14T08:50:10.810 に答える