2011-09-12 5 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; 

} 

私は仕事が終わって、再びそれを有効にするまで、その一度だけ呼ばれる最後のセルで「遊ぶ」場合でも、方法を見つける必要があります。例えば、私は変数を宣言することをお勧め

TNX

答えて

0

stopAnimatingFooterを実装し、yesにそれを設定しますUIViewControllerBOOL working;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; 
} 
+0

に設定することを忘れないでください、あなたは私が新しいですし、私はブール値を使用する方法を知らないので...私はより多くのコードとの質問を編集して、問題を「修正」することができますとにかく答えをありがとう:) – user535351

+0

更新された答え.. – Nekto

+0

それは働いていない:(別のアイデアを持っていますか? – user535351

関連する問題