2011-09-12 1 views
0

У меня есть кнопка «Загрузить больше» с помощью TableFooterView и когда я прокручиваю вниз до последней ячейки, ее автоматически загружает больше ячеек в таблицу. так что он работает, но есть какая-то ошибка, если я прокручиваю вниз до последней ячейки, и я не отпускаю палец с экрана и прокручиваю вверх, а затем вниз (не отпуская палец) его снова называю пустоту, так что его 2 раза.Проблема вызова TableFooterView (трудно объяснить здесь XD)

код:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
if (([scrollView contentOffset].y + scrollView.frame.size.height) == [scrollView contentSize].height) { 
    [[self footerActivityIndicatorView] startAnimating]; 
    [self performSelector:@selector(stopAnimatingFooter) withObject:nil afterDelay:0.5]; 

    return; 
}  

} 


- (void) stopAnimatingFooter{ 
//add the data 
[[self footerActivityIndicatorView] stopAnimating]; 
[self addItemsToEndOfTableView]; 
[[self tableView] reloadData]; 

} 


- (void) addItemsToEndOfTableView{ 
NSLog(@"test 123 test 123"); 


// Parse 
NSURL *feedURL = [NSURL URLWithString:@"http://gdata.youtube.com/feeds/api/users/RayWilliamJohnson/uploads?v=2&alt=rss&sort_field=added&start-index=21&max-results=20"]; 
feedParser = [[MWFeedParser alloc] initWithFeedURL:feedURL]; 
feedParser.delegate = self; 
feedParser.feedParseType = ParseTypeFull; // Parse feed info and all items 
feedParser.connectionType = ConnectionTypeAsynchronously; 
[feedParser parse]; 





return; 

} 

мне нужно найти способ, что даже если я «играть» с последней ячейкой его называют только один раз, пока задача не закончена, и снова включить его.

Тпх

ответ

0

Я предлагаю объявить переменную, например, BOOL working; в вас UIViewController, который реализует stopAnimatingFooter и установить его да: working = YES; если он еще не установлен и не установить его на нет: working = NO;, когда вы хотите загрузить новые клетки. Когда вы введете метод stopAnimatingFooter, проверьте, установлена ​​ли эта переменная if (working) return;.

Не забудьте установить в вашем методе initworking = NO;

- (void) stopAnimatingFooter 
{ 
    if (working) return; 
    working = YES; 
    //add the data 
    [[self footerActivityIndicatorView] stopAnimating]; 
    [self addItemsToEndOfTableView]; 
    [[self tableView] reloadData]; 
    working = NO; 
} 
+0

вы можете «исправить» проблему, потому что я новичок, и я не знаю, как использовать BOOL ... я изменить вопрос с большим количеством кода в любом случае спасибо за ответ :) – user535351

+0

обновленный ответ .. – Nekto

+0

его не работает :(у вас есть другая идея? – user535351