Skip to content

结束刷新和开始刷新同时调用问题 #642

@augsun

Description

@augsun

结束刷新方法有一个0.1s的延迟

#pragma mark - 公共方法
- (void)endRefreshing
{
    if ([self.scrollView isKindOfClass:[UICollectionView class]]) {
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [super endRefreshing];
        });
    } else {
        [super endRefreshing];
    }
}

如果是标签切换要结束上一次正在刷新然后再开始下一个刷新, 就会导致先开始刷新, 然后再结束. 最终导致不显示刷新.
类似百思不得姐的左侧关注很快点击的时候.调用

[self.collectionView.mj_header endRefreshing];
[self.collectionView.mj_header beginRefreshing];

有些地方又不会, 是啥情况...
上面的一个判断, 为什么呢...

[self.scrollView isKindOfClass:[UICollectionView class]]

试了下, 这个问题我是在 UICollectionView 下遇到, 然后用 UITableView 试, 居然不会...

是不是 UICollectionView 的刷新方法与 UI 布局的时机与 UITableView 的不同.
似乎 UITableView 只要 reloadData 后 UI 的布局都是定好的, 而 UICollectionView 好像要等一段时间.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions