1

PullToRefresh libを変更して、scrollViewDidScroll内でUIViewアニメーションを起動しました。私が欲しいのは、ユーザーがプルを開始したときにアニメーションを起動し、プルして更新するヘッダービューが画面から消えたときにアニメーションを終了することです。ただし、アニメーションは、ユーザーがプルを解放したときにのみ機能します。ユーザーが引っ張り続けている間、アニメーションは機能しません...事前にご協力いただきありがとうございます!:)

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{   
    if (scrollView.isDragging) {
        if (refreshHeaderView.state == EGOOPullRefreshPulling && scrollView.contentOffset.y > -65.0f && scrollView.contentOffset.y < 0.0f && !_reloading) {
            [refreshHeaderView setState:EGOOPullRefreshNormal];
            if (timer) {
                [timer invalidate];
                timer = nil;
            }
        } else if (refreshHeaderView.state == EGOOPullRefreshNormal && scrollView.contentOffset.y < -65.0f && !_reloading) {
            [refreshHeaderView setState:EGOOPullRefreshPulling];
            if (!timer) {
                timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(startMyAnimation) userInfo: nil repeats: YES];
            }
        }
    }
}
4

1 に答える 1

3

通常、ユーザーがスクロールビューをドラッグしている間、タイマーは起動しません。

次のようにタイマーをスケジュールしてみてください。

timer = [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(startMyAnimation) userInfo: nil repeats: YES];
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];
于 2013-03-14T20:30:00.253 に答える