将活动指示器颜色更改为黑色

时间:2015-04-17 11:46:32

标签: ios objective-c swift

我试图将我的活动指示器更改为黑色等自定义颜色。然而,它似乎根本不适用,并且仍然具有标准的白色。

我所做的是创建一个UIView并添加一个活动指示器作为子视图,然后将其添加到tableFooterView。

如何更改活动指示器颜色?

viewDidLoad中:

    let footerView = UIView(frame: CGRectMake(0, 0, self.view.frame.size.width, 40))
    footerView.backgroundColor = UIColor(rgba: "#f6f7f9")
    var actInd: UIActivityIndicatorView = UIActivityIndicatorView()
    actInd.color = UIColor.blackColor()
    actInd.frame = CGRectMake(self.view.frame.size.width/2-10, 0.0, 20.0, 20.0);

    actInd.activityIndicatorViewStyle =
        UIActivityIndicatorViewStyle.WhiteLarge
    footerView.addSubview(actInd)
    actInd.startAnimating()
    self.tableVIew.tableFooterView = footerView

5 个答案:

答案 0 :(得分:62)

您需要在设置活动指示器样式后设置颜色。设置activityIndicatorViewStyle似乎会重置activityIndicator

的颜色

所以就这样做:

// .... 

activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge
activityIndicator.color = .black
footerView.addSubview(activityIndicator)
activityIndicator.startAnimating()
self.tableView.tableFooterView = footerView

这应该可以正常工作。

答案 1 :(得分:11)

文档说明

  

如果为活动指示器设置颜色,则会覆盖颜色   由activityIndi​​catorViewStyle属性提供。

所以你必须先设置activityIndicatorViewStyle,然后再设置颜色。

正确:

actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
actInd.color = UIColor.blackColor()

错:

actInd.color = UIColor.blackColor()
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge

答案 2 :(得分:3)

这是Swift 4的扩展,可以轻松地为指示器着色。

import UIKit

extension UIActivityIndicatorView {
    func assignColor(_ color: UIColor) {
        activityIndicatorViewStyle = .whiteLarge
        self.color = color
    }
}

你这样称呼它:

activityIndicator.assignColor(.black)

以下是此代码的实际操作,使用随机计时器更改颜色: enter image description here

答案 3 :(得分:1)

Swift 3版本

在主要课程ViewController中添加activityIndi​​cator:

class ViewController: UIViewController, WKNavigationDelegate {

let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.whiteLarge)

然后在viewDidLoad()

override func viewDidLoad() {
super.viewDidLoad()

activityIndicator.color = UIColor.black
activityIndicator.center = CGPoint(x: view.bounds.size.width/2, y: view.bounds.size.height/2)
view.addSubview(activityIndicator)
activityIndicator.startAnimating()

删除activityIndi​​cator:

activityIndicator.stopAnimating()

答案 4 :(得分:0)

设置指示器样式后,应更改颜色。其他一切对我来说都很好。