0

私はこの問題にかなりこだわっています。plist ファイルから 70 個の要素を保持する NSArray *list があります。ここで、それらを UITableView に入力する必要があります。私が望むのは、一度に20個のアイテムを表示し、21番目のセルをクリックして別の20個を表示することです..次に、41番目のセルを押して別の20個のアイテムを表示します..というように、72個のセルすべてが表示されるまで..

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

    return 20;

}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath     *)indexPath
{
static NSString *CellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

static NSString *addCellID = @"addMoreCell";
UITableViewCell *addCell = [tableView dequeueReusableCellWithIdentifier:addCellID];

if (indexPath.row == 0) {
    static NSString *CellIdentifier = @"labelCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    return cell;
} else if (indexPath.row < 25){
    NSDictionary *dic = [self.list objectAtIndex:indexPath.row];
    cell.textLabel.text = [dic objectForKey:@"Title"];
    cell.detailTextLabel.text = [dic objectForKey:@"Tips"];
    return cell;
} else {
    if (cell == nil) {
        addCell.textLabel.text = @"Load More...";
        return cell;
    }
}
}


- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row == 20)
{
    [self.tableView reloadData];
}
}
4

2 に答える 2

2

あなたがする配列を取りadd 20 elements from plist、そして

セットnumberOfRowsInSection = [array count]して

plistにあるかどうかを確認numberOfRowsInSection < totalNumberOfRecordsし、それが少ない場合は、increment numberOfRowsInSection by 1.

そして cellForRowAtIndexPath チェックでif (indexPath.row < totalNumberOfRecords -2 && indexPath.row < numberOfRowsInSection-1)

"LoadMore Cell"それからelse notを追加します。

于 2012-08-24T15:20:33.377 に答える
1

だから私はかなり似たようなことをします。テーブルに表示する 70 個の文字列 (または辞書) を含む配列があります。「numberOfRowsInSection:」は、最初に 20 に設定されている ivar を使用する必要があります。

ボタンが押されたら、ivar を 20 増やし (ただし、実際のデータ量を超えないように)、テーブルをリロードしてから、tableView メソッドを使用してテーブルを「新しい」セルまでスクロールできます。

于 2012-08-24T14:01:01.180 に答える