1

Three20 を使用していると思われる AppAdvice というアプリがあります。ほとんどのテーブルビューには、リストの一番下までスクロールして最後の行を表示すると、自動的により多くの結果が読み込まれるメカニズムが備わっていることに気付きました。

また、最後の行には、追加のアイテムがロードされていることをユーザーに知らせるインジケーターがあり、追加のアイテムがロードされると消えます。最後の行が表示されると、アプリはさらに結果を要求します。

彼らがこれをどのように実装しているかについての手がかりはありますか? 私が理解できないのは、アイテムをテーブル ビューに追加し、インジケーター行を再配置する方法です。

three20 に tttablemorebutton があることは知っていますが、使い方がわかりません。

http://ws.2wsx.ws/load_more_items.jpg

ありがとう、ハウィー

4

4 に答える 4

2

TTTableMoreButton が行うことは、モデルで次を呼び出すことだけです (コードは TTTableViewDelegate にあります)。

- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more 

more が YES の場合、_isLoadingMore フラグが設定されます。これを次でテストします。

- (void)requestDidFinishLoad:(TTURLRequest*)request 

余分な結果を先頭に挿入するのではなく、_items 配列に追加します。

もちろん、これらすべてを機能させるには、TTModel を実装する必要があります (データソースのモデル メソッドをオーバーライドします)。データ指向のアプリケーションの場合、TTURLRequestModel を参照するのが最適です。TTTwitter にこの例があると確信しています。

于 2011-01-26T03:53:07.633 に答える
1

私はこれを正確に行う方法をここに書きました

これは、最後の項目として TTTableMoreButton を持つリスト データ ソースを使用してセットアップされます。more セルが表示されようとしているときにフックをデータ ソースに追加し、プログラムで more 要求を送信して、さらに項目をロードします。リストの早い段階でより多くのリクエストを送信するように微調整することもできますが、それはあなたに任せます。

于 2011-01-26T04:40:15.463 に答える
0

質問を見て、ブログ記事を書くきっかけになりました。http://blog.grio.com/2012/03/thumbnail-view-of-large-number-of-photos-with-three20.html お 役に立てば幸いです。

于 2012-03-13T22:30:05.530 に答える
0

TTTwitter が間違っているようです。more ボタンをクリックすると、次のメソッドが 2 回実行されます。1 回目は more が true、2 回目は more が false であるため、テーブルがデータを正しくロードできないことがわかります。

- (void)load:(TTURLRequestCachePolicy)cachePolicy more:(BOOL)more 
于 2011-11-17T06:25:57.960 に答える