2

さて、次の場合に呼び出されるデリゲートがあります。

  • スクロールビューはスクロールを開始します
  • スクロール動作を初期化した後のスクロールビューからのフィンガーリフテ
  • スクロールビューが減速を停止しました

しかし今問題は、スクロール時にそれらのビューをリサイクルしたい場合、スクロール中にそれを非常に迅速に行わなければならないということです。ユーザーがスクロールすると、何かが上から下へ、または下から上へ1つまたは3つのビューを削除するメソッドをトリガーする必要があります。

問題:

  • ユーザーは非常にゆっくりまたは非常に速くスクロールする可能性があります。知らない。

  • スクロールが始まるとすぐに、つまり1秒間に50回オフセットが何であるかを確認し、ビューをリサイクルする時期かどうかを判断する必要があります。次の問題は、1秒間に50回メソッドを呼び出す方法と、スクロールが停止するときにそれを停止する方法です。

その問題を解決するためにどのパターンを知っていますか?私はそこにいくつかの良いものがあると確信しています。

4

3 に答える 3

2

実際のところ、scrollViewDidScrollメソッドは、指を離したときではなく、スクロール中に継続的に呼び出されます。contentOffset(実際には、ユーザーのスクロールやプログラムによる変更など、変更されるたびに呼び出されます。)したがって、ビューを安全にリサイクルするために使用できます。

ユーザーは1つのジェスチャで1つの画面の幅または高さの距離をスクロールできる可能性があるため、現在のビューから1つの画面サイズの距離内にビューをプリロードしてください。

そしてもちろん、ビューを垂直に配置する場合は、UITableViewが友だちであり、リサイクルを行います。(必要に応じて、可変高行もサポートします。)

于 2009-05-10T01:23:04.117 に答える
2

ページングが有効になっている場合、デリゲートは

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

スクロールがページ境界にある場合は、ビューをリサイクルするのに適しています。それ以外の場合は、デリゲートのコンテンツオフセットを監視する必要があります

- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

ビューをリサイクルできるときに解決します。

于 2009-05-10T08:51:01.887 に答える
2

テーブル ビューは、この種の用途に優れており、非常に柔軟です。

于 2009-05-07T23:13:20.417 に答える