2012-03-11 5 views

答えて

4

あなたはUIScrollViewのの代理人になるために、あなたのビューコントローラを必要とする:あなたのデリゲートでUIScrollViewDelegate

あなたが最後の状態を判断するために次のメソッドを実装することができます

- (void) scrollViewDidScroll:(UIScrollView *)scrollView{ 

} 
- (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ 

} 
- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ 

} 

は、の二つの特性もあります

scrollView.isDragging 
scrollView.isDecelerating 

スクロールビューにはいくつかの最終的な可能性があります。減速がない場合、scrollViewDidEndDeceleratingは呼び出されず、scrollViewDidEndDraggingのみが呼び出されます。しかし、減速があれば、両方とも呼び出されます。 scrollViewDidEndDraggingdecelerateのvarを使用すると、コードの実行時期を判断するのに役立ちます。このため、これらのデリゲートメソッドによって呼び出される個別のメソッドを持つことは、通常は良い考えです。

1
@implementation YourViewController 
{ 
    BOOL shouldDoYourTask; 
} 

-(void)performYourTask{ 
    //Do Your Stuff 
    shouldDoYourTask = YES; 
} 

#pragma mark - ScrollView Delegate 
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView 
        willDecelerate:(BOOL)decelerate 
{ 
    if (!decelerate && shouldDoYourTask) 
    { 
     [self performYourTask]; 
     shouldDoYourTask = NO; 
    } 
} 

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    if (shouldDoYourTask) { 
     [self performYourTask]; 
     shouldDoYourTask = NO; 
    } 

} 
関連する問題