UIScrollView のフリックからスクロールの動作を再現したいのですが、そのクラスを使用したくない (または使用できない)。私に何ができる?
4 に答える
さて、UIScrollView のダイナミクスをキャプチャする独自のライブラリを実装することで、これに答えました。
私のコードの便利な点は、使用している座標系、アニメーション レート、および特定の UI クラスに依存しないことです。選択したカスタム ビュー クラスに簡単にネストできます。
iPhone のデフォルトのフリックからスクロールの動作は興味深いものです。指を長時間押したままさまざまな方向に動かすと、最後の方向のみがスクロール モーションの計算に使用されることがわかります。
ただし、このコードを自分で作成しようとすると、最後の 2 つのポイントを使用してモーションの方向を計算するだけではうまくいかないことがすぐにわかります。代わりに、私のコードはタッチの短い履歴を保持し、線形補間を使用して、少し前にタッチが「あった」場所を特定します。この補間されたポイントは、モーション ベクトルを計算するための基準として使用されます。これは、非常に心地よい相互作用につながります。
コードは github ( http://gist.github.com/100855 ) で入手できます。BSDライセンスの下でリリースされています。
これはカッコいい!スクロール可能なビューが 1902 ~ 2037 の範囲の 1 日分のグラフィック データであるアプリで使用したので、UIScrollView は効率的ではありません。
では、UIScrollView が機能しなかったのはどうですか? そのクラスはかなり柔軟です...