删除 UIRefreshControl 默认微调器

Remove UIRefreshControl default spinner

我已经将 UIRefreshControl 子类化为自己的子类,除了一件事我可以管理所有事情:

默认微调器始终可见,当然在我自定义实现中所做的所有操作中。

我找不到微调器 属性 或任何我需要设置为清晰颜色的东西,谁能帮我解决这个问题?

覆盖 didMoveToSuperview 以隐藏微调器的超级视图。

Swift版本:

override func didMoveToSuperview() {
    super.didMoveToSuperview()

    guard let _ = superview else { return }

    self.subviews.first?.alpha = 0 // set hidden = true did not work
}

Objective-C版本:

- (void)didMoveToSuperview {
    [super didMoveToSuperview];

    if (self.superview != nil && self.subviews.count > 0) {
        self.subviews[0].alpha = 0;
    }
}

您可能想要做更多的检查,而不仅仅是使用第一个子视图。

要在 UIRefreshControl 中隐藏 Spinner 加载器,请将 .tintColor 属性 设置为清晰的颜色。

例如(Swift):

mRefreshControl.tintColor =.clear

Swift4,Swift5

错误修复

有时只有这段代码不能正常工作:

refreshControl.tintColor = .clear – 第一次重新加载显示指标:(

这修复了这个错误:

refreshControl.tintColor = .clear 
refreshControl.subviews.first?.alpha = 0