Я пытаюсь добавить еще 10 записей в UITableView
, когда пользователь прокручивает нижнюю часть таблицыView. Я использую scrollViewDidEndDecelerating
: и затем -(void)getFeed:
, чтобы получить данные и сохранить их в NSMutableArray
под названием moreitems
. moreitems
следует добавить к self.listingNodesArray
, а затем добавить в нижнюю часть таблицы вместе с записями, которые уже есть в таблице.Как добавить еще 10 записей в `UITableView`, когда пользователь прокручивает нижнюю часть таблицыView
Я думаю, что моя проблема кроется в методе insertRowsAtIndexPaths:
. Я не уверен, что положить после этого. На данный момент приложение падает на [self.tableView endUpdates];
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"scrollViewDidEndDecelerating");
float endScrolling = scrollView.contentOffset.y + scrollView.frame.size.height;
if (endScrolling >= scrollView.contentSize.height)
{
index ++;
[self getFeed:index];
}
}
- (void)getFeed:(NSInteger) pageNumber
{
NSError *requestError = nil;
NSString *savedValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"token"];
NSLog(@"countpage %d",index);
NSString *stringWithToken = [NSString stringWithFormat:@"%@&%@&page=%d&token=%@",kURL,city_slug, pageNumber, savedValue];
NSLog(@"string token is %@", stringWithToken);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL
URLWithString:stringWithToken]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&requestError];
NSError *jsonParsingError = nil;
if (requestError) {
NSLog(@"sync. request failed with error: %@", requestError);
}
else {
// handle data
NSDictionary *publicData = [NSJSONSerialization JSONObjectWithData:response options:0 error:&jsonParsingError];
moreItems = [publicData objectForKey:@"data"];
}
NSLog(@"moreitems data output is %@",moreItems);
[self.listingNodesArray addObjectsFromArray:moreItems];
int newRowIndex = [self.listingNodesArray count];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:newRowIndex+1 inSection:0];
NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:indexPaths
withRowAnimation:UITableViewRowAnimationBottom];
[self.tableView endUpdates];
NSLog(@"updated self.listingNodesArray %@ and count is %d",self.listingNodesArray, [self.listingNodesArray count]);
}
спасибо за любую помощь в этом.
Дубликат Que: http://stackoverflow.com/questions/5137943/how-to-know-when-uitableview-did -scroll-to-bottom-in-iphone – Mrunal
В обеих вставках вы вставляете пустой массив. Это твой крах. И вам не нужно перезагружать данные. – Desdenova
http://stackoverflow.com/questions/6023683/add-rows-to-uitableview-when-scrolled-to-bottom –