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

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

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

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

【问题讨论】:

    标签: spinner uiactivityindicatorview 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;
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多