TableFooterView 调用问题(这里很难解释 XD)
Posted
技术标签:
【中文标题】TableFooterView 调用问题(这里很难解释 XD)【英文标题】:TableFooterView calling problem (hard to explain here XD) 【发布时间】:2011-11-15 01:23:01 【问题描述】:我有使用 TableFooterView 加载更多按钮,当我向下滚动到最后一个单元格时,它会自动将更多单元格加载到表格中。 所以它可以工作,但是如果我向下滚动到最后一个单元格并且我没有将手指从屏幕上松开并向上然后向下滚动(不松开我的手指)它再次称为 void 所以它的 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
【问题讨论】:
【参考方案1】:我建议声明变量,例如BOOL working;
在你UIViewController
中实现stopAnimatingFooter
并将其设置为yes:working = YES;
如果尚未设置,则将其设置为no: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;
【讨论】:
你能“解决”这个问题吗,因为我是新手,我不知道如何使用 bool...我用更多代码编辑问题,谢谢你的回答:) (迂腐提示:您没有有在 init 中设置working=No
,因为 BOOL
ivars 已初始化为 NO
。我同意这是个好主意为了清楚起见进行设置。)以上是关于TableFooterView 调用问题(这里很难解释 XD)的主要内容,如果未能解决你的问题,请参考以下文章
消除uitableview tablefooterview分隔符
如何将高度设置为从 xib 加载的 tableFooterView
如何让 tableFooterView 始终位于 UITableView 的底部
刷新 UITableView tableFooterView 而不重新加载整个表数据