1

スライダーが移動できる速度を制限することを目的としたカスタムUISliderサブクラスがあります。理想的には、この制限を「5ユニット/秒」のように口頭でわかりやすい方法で設定したいと思います。今のところ、私ができる最善のことは、更新ごとにスライダーの値を変更できる量を制限することです。理論的には、最後の更新がトリガーされてからの時間を追跡できますが、ユーザーが指を短時間動かさないと、その計算はウィンドウの外に出てしまいます。

つまり、デバイスのタッチイベントの頻度を取得して、いずれかのデバイスでタッチイベントが遅い場合でも、リアルタイムに対する変化率を一定に保つ方法はありますか?

4

1 に答える 1

0

タッチがいつ開始されたかを確認するために、タッチの開始と終了を監視しないのはなぜですか?

次に、タッチが終了する前に、タッチイベントのX軸が変化した量を確認し、それに応じてスライダーを移動しますか?

必要なのは、次の 3 つのデリゲート メソッドを使用することです。

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

タッチの開始/終了をマークするブール値を持つことができ、ブール値が true の場合、touchesMoved デリゲートを使用してスライダーを移動できます。

于 2012-05-24T13:42:44.773 に答える