0

ビューにUISliderがあり、典型的な詳細ビューコントローラーです。スライダーの親指に触れると、左に細かくドラッグできます。左にドラッグすると、好きな場所にドラッグし続けることができますが、右にドラッグすると、数ピクセル移動してから、ドラッグが停止します。

UISliderで読んだのは、ジェスチャレコグナイザーに関連している可能性があるため、わずかな距離だけスライドしましたが、このビューでアクティブなレコグナイザーはありません。干渉する可能性のあるレコグナイザーを一時的に削除しようとしましたが、役に立ちませんでした。

問題が発生した場合に関係するコードは実際にはあまりないため、含めるサンプルコードはありません。UISliderを含むUIViewControllerサブクラスがあり、「ValueChanged」イベントに対してIBで生成されたアクションがあります。これが起動し、前述したように、スライダーを左にドラッグできますが、右にはドラッグできません。

アクションを変更してみたので、スライダーの値をNSLogするだけで、それは役に立ちません。

問題は、私が取り組んでいるアプリ内の他の何かとの相互作用であると思いますが、どこを見ればよいかわかりません。私はこれを引き起こしている可能性があるものについていくつかのアイデアを探しています。

アップデート

だから私は問題を見つけました。これはiOS5.1のバグであり、UISplitViewControllerによってハイジャックされたiOS 5.1スワイプジェスチャで説明されています-回避する方法は?

すべてのジェスチャレコグナイザーを列挙し(self.view.windowからビュー階層をウォークしてダンプすることにより)、それらを選択的に削除し、問題の原因となったジェスチャをグーグルで検索することで、それを追跡しました。お尻の痛み。次の犠牲者のためにこれをここに残します。

4

3 に答える 3

1

質問の更新として回答を投稿しましたが、一言で言えば、それはiOS5.1のバグです。スプリットビューコントローラのパンジェスチャレコグナイザがスライダーに干渉しています。私の回避策は、そのレコグナイザーを無効にすることです。

于 2012-07-07T19:04:18.283 に答える
0

スライダーの値を1より大きい値に増やしようとしている可能性があります。0.46など、0と1の間の浮動小数点数を入力する必要があります。

値を更新するコードの部分を調べて、それを確認します。

于 2012-07-03T05:34:15.667 に答える
0

短い答え:

スライダーのプロパティcontinuousをに設定してみてくださいNO

長い答え:

同様の問題が発生しました。iPad5.1シミュレーターでスライダーの親指が動かないということです。ただし、iOS6では問題ありません。私の場合、スライダーminimumValuemaximumValue他のいくつかの値をコードで設定していました。continuousプロパティをに設定すると、問題は解消されましたNO。関連するコードの断片:

            self.precisionSlider.minimumValue = 0;
            self.precisionSlider.maximumValue = 15;
            self.precisionSlider.continuous = NO;
于 2013-08-09T07:57:24.687 に答える