2012-05-12 30 views
0

私はEGORefreshTableHeaderView [1]を使用して、サーバーから新しいデータをUITableViewにフェッチしています。EGORefreshTableHeaderViewがiOS 5.1で正しく動作していません

これはかなりうまくいきますが、iOS 5.1では、EGORefreshTableHeaderViewは、ユーザーがプルダウンを解除したときに目的の高さまでスクロールしません。通常、スクロールしてcontentInset(60ピクセル)に戻す必要があります。ローディングプロセスにかかる時間の間ローディングビューが表示され、その後にスクロールして0pxインセットに戻っているはずです。

最初のスクロールバックは、egoRefreshScrollViewDidEndDragging:scrollViewメソッドで実行する必要があります。

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

    BOOL _loading = NO; 
    if ([_delegate respondsToSelector:@selector(egoRefreshTableHeaderDataSourceIsLoading:)]) { 
     _loading = [_delegate egoRefreshTableHeaderDataSourceIsLoading:self]; 
    } 

    if (scrollView.contentOffset.y <= - 65.0f && !_loading) { 

     if ([_delegate respondsToSelector:@selector(egoRefreshTableHeaderDidTriggerRefresh:)]) { 
      [_delegate egoRefreshTableHeaderDidTriggerRefresh:self]; 
     } 


     [self setState:EGOOPullRefreshLoading]; 
     [UIView beginAnimations:nil context:NULL]; 
     [UIView setAnimationDuration:0.2]; 
     scrollView.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f); 
     [UIView commitAnimations]; 


     //I've also tried it with block animations! But doesn't work! 
     /*[UIView animateWithDuration:0.2 animations:^{ 
     scrollView.contentInset = UIEdgeInsetsMake(60.0f, 0.0f, 0.0f, 0.0f); 

     }];*/ 
    } 

} 

問題は、ユーザが(下のスクリーンショットに示されている)、画面の半分にスクロールビューを離したとき、scrollviewバックそれがデータをリロードする必要があり60PXはめ込みにバウンスしないことです。

私の最初のアイデアは、それがアニメーションのためだということでした。だから私はアニメーションをブロックするように変更しましたが、何も変わりません。私は問題は、アニメーションがロードの最後にcommitAnimationsで実行されないことです。

screenshot of the problem

誰もがこのためのソリューションを持っていますか?

[1] ... https://github.com/enormego/EGOTableViewPullRefresh

答えて

1

私は彼らのデモアプリケーションをプルアップし、そのデリゲートメソッドをたどります。私は彼らのデモアプリケーションを追ってきた

[_delegate egoRefreshScrollViewDidEndDragging:scrollView]; 
+0

は、この内部didEndDraggingを置きます。 didEndDraggingでは、私は:\t [self.refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView]; 'これは正しく呼び出されます。 – Chris

+0

Ehm、ありがと...私はすべて新しいものを作って、デリゲートをもう一度コピーしました。私が前にやったと思っていたのと同じように変更しましたが、今は動作しています...違いは分かりません。 – Chris

+0

ハハはうまくいきました。 – chourobin

関連する問題