2012-04-13 6 views
0

В моем приложении i отображается элемент. Мой файл JSON содержит 50 элементов, но сначала я хочу отобразить 25, и когда пользователь прокручивается до последней строки, ему нужно загрузить больше предметов.Обнаружение последней строки и добавление одного

я делаю:

Загрузка JSON корма;

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

Вы не сможете добавить строки, потому что жесткий код 25 как количество строк в этом разделе. –

+0

я мог сделать; 'return [tableData count];', но затем он будет отображать все элементы, можно ли установить max и позже +1? – Jones

ответ

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

+0

Что вы имеете в виду со вторым блоком кода? Часть «Последний ряд»? В forRowAtIndexPath. – Jones

+0

Извините, я имел в виду if (indexPath.row == [self.tableData count] - 1) . Это нужно вызвать в willDisplayCell: –

Смежные вопросы