1

UISliderを2つの方法(Touch UpInsideとValueChanged)にリンクしました。1つ目はドラッグが完了したら更新し、2つ目はドラッグ中に更新します。スライダーを使って画面上で「長い」距離をドラッグすると、すべて問題ありません。ステップバイステップでドラッグすると、Value Changedは正常に機能しますが、Touch Up Insideは機能しません...誰もが同じことを経験しましたか?

4

1 に答える 1

2

問題はジェスチャ認識エンジンにありました。スライダーの「タップ」を認識するメソッドを実装して、スライダーをその場所にフラグを立てずにその場所にすばやく移動させるため、if-else ステートメントで内部のタッチアップと分離するのを忘れていました。

UISlider* s = (UISlider*)gestureRecognizer.view;
if (s.highlighted) {
    switch (s.tag) {
        case 1:
            [_cpuStepper setValue:[s value]];
            break;
        case 2:
            [_ramStepper setValue:[s value]];
            break;
        case 3:
            [_hddStepper setValue:[s value]];
            break;
        default:
            break;
    }
    [self updatePrice];
    return; // on thumb
}

すべてが機能しています。

于 2012-07-09T13:24:45.157 に答える