0

ツイーターアプリと同様の機能を持つアプリを作ろうとしています。

10個のセルを持つテーブルビューがあります。下にスクロールして5番目のセルに移動すると、テーブルビューは現在のビューにさらに10個のセルを追加します。

これらのセルのコンテンツは、10個の要素の配列を返すメソッドを実行することによって設定され、そこから新しいセルにデータを入力するために使用します。

現在のテーブルビューにセルを追加する方法と、5番目のセルまたは現在のすべてのセルの最後に到達したときにチェックして新しい10個のセルのセットが自動的に追加されるようにする方法がわかりません。

[tableView reloadData]を使用してテーブルビューを再設定することを考えています。現在のすべてのセルの最後に到達したことを確認した後でこれを呼び出しますが、確認する方法がわかりません。その終わりに達した。

それについて何か考えはありますか?テーブルビューのすべてのセルの最後に到達したことを確認することはできますか?

4

4 に答える 4

4

AnUITableViewは、のサブクラスにすぎないUIScrollViewため、関数を実装して、UIScrollViewDelegate関数内で必要なことを実行できます。

あなたは実装することができます

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

機能を委任し、テーブルの最後に到達したかどうかを確認します

if (scrollView.contentOffset.y + scrollView.frame.size.height == scrollView.contentView.frame.size.height) { ... }

トリックを実行する必要があります。または、少し早く新しい行を追加し始めたい場合は、いくつかのポイントを減算します。

于 2013-02-21T13:09:50.053 に答える
1

これはあなたが探していたものではないことを私は知っていますが、それは非常に似ています...

開始点は次のとおりです:https ://github.com/enormego/EGOTableViewPullRefresh

そして、ここにあなたのためのいくつかのより興味深いリンクがあります:

  1. iPhoneプロジェクトには「プルアップして更新」機能が必要です
  2. UITableViewの行は非同期で読み込まれます
于 2013-02-21T12:54:44.273 に答える
1

それを行っている多くのオープンソースプロジェクトがあります。それらを見つけるには、たとえばhttp://www.cocoacontrols.com/にアクセスして、「refresh」、「pull to refresh」、または「tableview」を検索します。

これらのプロジェクトの多くには、テーブルビューでそれらを使用する方法の例が提供されています

于 2013-02-21T12:56:08.690 に答える
1

スクロールビューデリゲートを使用して、スクロールの方向を取得します(テーブルビューを使用すると呼び出されます)

#pragma mark:scrollView delegate
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    offset=scrollView.contentOffset.y;
    offsetx=scrollView.contentOffset.x;
    DLog(@"%f",offset);
}
- (void)scrollViewDidScroll:(UIScrollView *)sender
{

    DLog(@"%f************%f",offset,sender.contentOffset.y);
    if(offset>sender.contentOffset.y)
    {
        directionUp=NO;
    }
    else {
        directionUp=YES;
    }

}

次に、このタブビューデリゲートメソッドを使用します

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{



        if(directionUp&&(indexPath.row>dataSource.count-3))
        {
            [self performSelector:@selector(appendTableView) withObject:nil afterDelay:0.1f];// appendTableView fetches next ten data element
        }


}
于 2013-02-21T13:27:14.047 に答える