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

Pet*_*Pik 32 objective-c ios 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
Run Code Online (Sandbox Code Playgroud)

Cat*_* T. 70

设置活动指示器样式后,需要设置颜色.似乎设置activityIndicatorViewStyle重置为的颜色activityIndicator

所以这样做:

// .... 

activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge
activityIndicator.color = .black
footerView.addSubview(activityIndicator)
activityIndicator.startAnimating()
self.tableView.tableFooterView = footerView
Run Code Online (Sandbox Code Playgroud)

这应该工作得很好.


Nik*_*jic 13

文件说明

如果为活动指示器设置颜色,它将覆盖 activityIndi​​catorViewStyle属性提供的颜色.

所以你必须先设置activityIndicatorViewStyle然后设置颜色.

正确:

actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
actInd.color = UIColor.blackColor()
Run Code Online (Sandbox Code Playgroud)

错误:

actInd.color = UIColor.blackColor()
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
Run Code Online (Sandbox Code Playgroud)


Cod*_*der 5

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

import UIKit

extension UIActivityIndicatorView {
    func assignColor(_ color: UIColor) {
        activityIndicatorViewStyle = .whiteLarge
        self.color = color
    }
}
Run Code Online (Sandbox Code Playgroud)

你这样称呼它:

activityIndicator.assignColor(.black)
Run Code Online (Sandbox Code Playgroud)

这是正在运行的代码,带有一个随机计时器来改变颜色: 在此处输入图片说明