我有TableFooterView加载更多按钮,当我向下滚动到最后一个单元格时,它会自动将更多单元格加载到表格中。 所以它的工作但是如果我向下滚动到最后一个单元格并且我不会将我的手指从屏幕上移开并向上滚动然后向下(不释放我的手指)它再次被称为虚空,所以它有2种错误。
代码:
- (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;
}
我需要找到一种方法,即使我“播放”最后一个单元格,它只调用一次,直到任务结束并再次启用它。
tnx
答案 0 :(得分:0)
我建议在BOOL working;
中声明变量,例如UIViewController
,其中stopAnimatingFooter
实现working = YES;
并将其设置为是:working = NO;
如果尚未设置并设置当您要加载新单元格时,它为否:stopAnimatingFooter
。当您输入方法if (working) return;
时,请检查此变量是否已设置为init
。
不要忘记设置working = NO;
方法- (void) stopAnimatingFooter
{
if (working) return;
working = YES;
//add the data
[[self footerActivityIndicatorView] stopAnimating];
[self addItemsToEndOfTableView];
[[self tableView] reloadData];
working = NO;
}
{{1}}