1

UIThumbWheel

私は、UIViewの側面から突き出て値を返す、昔ながらのボリュームコントロールのようなホイールを開発しています。私が抱えている問題は、ユーザーのスクロール速度に基づいてノブを加速させながら、UIScrollViewをタスクに結合する方法です。わかりやすくするために、ホイールのモックアップは次のようになります。

サムホイール

サブビューを削除および追加してホイールを作成するUIScrollViewを作成しました。私が抱えている問題は、ユーザーがホイールを回転させている速度に基づいて、ホイールコントロールに戻り値のサイズを調整させることです。3つの速度プロファイルの値は、合計、低速(+500)、中(+1000)、および高速(+10000)に追加されます。ラバーバンディングをゼロと上限に維持するために、表示値にcontentOffsetを使用しています。

速度に基づいて動きを追加してscrollView.boundsまたはcontentOffsetを操作しようとすると、途方に暮れてしまいます。無限スクロールであるcontentSizeウィンドウを無視すると、ラバーバンディング値が失われます。

スピードベースの動きとラバーバンディングエンドの両方を取得する方法を知っている人はいますか?

4

1 に答える 1

1

これはあなたがこれに直面しているちょっとした挑戦です、私はそれが好きです!:)今、私は似たようなものを開発しています。慣性スピンを備えた制御や、特定のしきい値に達したときの「ラバーバンディング」などの回転ホイールのようなものです。

私が正しければ、あなたはあなたのコントロールにUIScrollViewを使用していて、UIScrollViewの既存のバウンスする「機能」を使用/乱用しようとしていますか?スクロール速度に基づいて速度値を計算することに問題がありますか、それともキックインラバーバンディングが問題を引き起こしていますか?

「touchesBegan..」/「touchesMoved」を使用して、ラバーバンディング効果を自分で実装することを検討しましたか?ラバーバンディングを模倣するのは非常に簡単です。画面上のビューの特定のしきい値から、完全に停止するまで指をドラッグする動きの半分になります。参照:AndroidのギャラリーでiOSの「ラバーバンド」効果を模倣する

また、 iCarouselの実装を確認することもできます。カスタムプログラムされた同様の「ラバーバンディング」効果があります。

これは満足のいく回答/回答ではないことは知っていますが、おそらくそれはあなたの考えを他の方向に向けているのかもしれません。

于 2013-03-26T14:57:20.360 に答える