我试图将我的活动指示器更改为黑色等自定义颜色。然而,它似乎根本不适用,并且仍然具有标准的白色。
我所做的是创建一个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
答案 0 :(得分:62)
您需要在设置活动指示器样式后设置颜色。设置activityIndicatorViewStyle
似乎会重置activityIndicator
所以就这样做:
// ....
activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.whiteLarge
activityIndicator.color = .black
footerView.addSubview(activityIndicator)
activityIndicator.startAnimating()
self.tableView.tableFooterView = footerView
这应该可以正常工作。
答案 1 :(得分:11)
文档说明
如果为活动指示器设置颜色,则会覆盖颜色 由activityIndicatorViewStyle属性提供。
所以你必须先设置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)
答案 3 :(得分:1)
Swift 3版本
在主要课程ViewController
中添加activityIndicator:
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()
删除activityIndicator:
activityIndicator.stopAnimating()
答案 4 :(得分:0)
设置指示器样式后,应更改颜色。其他一切对我来说都很好。