在我的应用程序中,我显示项目。我的JSON
Feed包含50个项目,但首先我要显示25个,当用户向下滚动到最后一行时,需要加载更多项目。
我在做:
下载JSON
Feed;
NSString *jsonString = [NSString
stringWithContentsOfURL:[NSURL URLWithString:xmlDataUrl]
encoding:NSStringEncodingConversionAllowLossy
error:nil];
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *results = [parser objectWithString:jsonString error:nil];
parser = nil;
[self setTableData:[results objectForKey:@"feed"]];
//
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return 1;
}
//
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
//return [tableData count];
return 25;
}
检测最后一行:
if(indexPath.row == [self.tableData count] - 1)
{
NSLog(@"Last Row");
}
但它没有检测到最后一行。这是因为它下载的JSON包含超过25行吗?
我如何添加新行类似[self.tableDate count] +1;
?
如果我确实返回[tableData count];
它正在检测最后一行,但行已经填满了100%我需要显示25/50而不是+1
答案 0 :(得分:2)
你在哪里调用第二块代码?它是在你的表委托的willDisplayCell:方法吗?
在我的一个项目中,我的代码非常相似
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == self.search.count && [tableView.indexPathsForVisibleRows containsObject:indexPath])
{
[self.search findMoreStuff];
}
}
在为self.search创建的附加后添加了一行,所以在我的情况下我正在检查self.search.count,但你可能想看看self.search.count-1