1

我通过修改 PullToRefresh 库在 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 回答