Skip to content

header刷新不回弹的问题 #1292

@Parker-zhu

Description

@Parker-zhu

1.header刷新不回弹的问题
复现代码:[table.mj_header beginRefreshing];
[table.mj_footer endRefreshing];
一起使用就会毕现,当然一般人不会这么用,只是举个例子说明问题
MJRefreshHeader中setState方法
`- (void)setState:(MJRefreshState)state
{
MJRefreshCheckState

// 根据状态做事情
if (state == MJRefreshStateIdle) {
    NSLog(@"2");
    if (oldState != MJRefreshStateRefreshing) return;
    
    // 保存刷新时间
    [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:self.lastUpdatedTimeKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
    
    // 恢复inset和offset
    [UIView animateWithDuration:MJRefreshSlowAnimationDuration animations:^{
        self.scrollView.mj_insetT += self.insetTDelta;
        
        // 自动调整透明度
        if (self.isAutomaticallyChangeAlpha) self.alpha = 0.0;
    } completion:^(BOOL finished) {
        self.pullingPercent = 0.0;
        
        if (self.endRefreshingCompletionBlock) {
            self.endRefreshingCompletionBlock();
        }
    }];
} else if (state == MJRefreshStateRefreshing) {
    MJRefreshDispatchAsyncOnMainQueue({
        NSLog(@"1");
        [UIView animateWithDuration:MJRefreshFastAnimationDuration animations:^{
            if (self.scrollView.panGestureRecognizer.state != UIGestureRecognizerStateCancelled) {
                CGFloat top = self.scrollViewOriginalInset.top + self.mj_h;
                // 增加滚动区域top
                self.scrollView.mj_insetT = top;
                // 设置滚动位置
                CGPoint offset = self.scrollView.contentOffset;
                offset.y = -top;
                [self.scrollView setContentOffset:offset animated:NO];
            }
        } completion:^(BOOL finished) {
            [self executeRefreshingCallback];
        }];
    })
}

}`
打印结果:2,1
从代码中也可以发现state == MJRefreshStateRefreshing时加了这一句MJRefreshDispatchAsyncOnMainQueue

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions