移除 UIRefreshControl 默认微调器

Posted

技术标签:

【中文标题】移除 UIRefreshControl 默认微调器【英文标题】:Remove UIRefreshControl default spinner 【发布时间】:2015-10-01 16:25:02 【问题描述】:

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

默认微调器始终可见,当然它位于我在自定义实现中所做的所有事情的中间。

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

【问题讨论】:

【参考方案1】:

要在UIRefreshControl 中隐藏微调器加载器,请将.tintColor 属性设置为透明颜色。

例如(斯威夫特):

mRefreshControl.tintColor =.clear

【讨论】:

最好解释一下为什么他们应该尝试这段代码。它是如何解决问题的? 事实上,这不是一个聪明的反应,我已经编辑了它。感谢 cmets【参考方案2】:

斯威夫特 4、斯威夫特 5

错误修复

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

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

这修复了这个错误:

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

【讨论】:

@user3788747,这就是这些答案的原因。【参考方案3】:

覆盖 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 默认微调器的主要内容,如果未能解决你的问题,请参考以下文章

移除单元格附件后,如何将微调器与单元格内容视图居中?

使用 Lottie 自定义 UIRefreshControl

从微调器中移除焦点

UIRefreshControl:刷新时 UITableView '卡住'

如何重启 UIRefreshControl 动画?

向上拖动时取消 UIRefreshControl