检测最后一行并添加一行

时间:2012-04-13 20:53:02

标签: objective-c xcode ios5

在我的应用程序中,我显示项目。我的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

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