我非常坚持这个问题。我有一个NSArray *列表,其中包含来自plist文件的70个元素。现在我需要将它们填充到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];
}
}
答案 0 :(得分: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"
。
答案 1 :(得分:1)
所以我做了一些非常相似的事情。您有一个包含70个字符串(或字典)的数组,以显示在表中。 'numberOfRowsInSection:'应该使用最初设置为20的ivar。
按下按钮时,将ivar增加20(但不超过实际数据量!),重新加载表格,然后使用tableView方法将表格滚动到“新”单元格