移除 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