Изменение цвета индикатора активности на черный
Я пытаюсь изменить свой индикатор активности на собственный цвет, например черный. Однако, похоже, он вообще не применяется и имеет стандартный белый цвет.
То, что я сделал, это создание 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
Ответы
Ответ 1
Вам нужно установить цвет после установки стиля индикатора активности. Кажется, что установка activityIndicatorViewStyle
сбрасывает цвет для activityIndicator
Так просто сделайте это:
// ....
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
actInd.color = UIColor.blackColor()
footerView.addSubview(actInd)
actInd.startAnimating()
self.tableVIew.tableFooterView = footerView
Это должно работать нормально.
Ответ 2
В документации указано
Если вы установили цвет индикатора активности, он переопределяет цвет предоставляемый свойством activityIndicatorViewStyle.
Итак, сначала нужно установить activityIndicatorViewStyle
, а затем установить цвет.
Правильно:
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
actInd.color = UIColor.blackColor()
Неправильно:
actInd.color = UIColor.blackColor()
actInd.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.WhiteLarge
Ответ 3
Вот расширение для Swift 4, которое позволяет легко раскрашивать индикатор.
import UIKit
extension UIActivityIndicatorView {
func assignColor(_ color: UIColor) {
activityIndicatorViewStyle = .whiteLarge
self.color = color
}
}
Вы называете это следующим образом:
activityIndicator.assignColor(.black)
Вот этот код в действии со случайным таймером для изменения цветов:
![введите описание изображения здесь]()
Ответ 4
Вы должны изменить свой цвет после установки стиля индикатора. Все остальное выглядит хорошо для меня.
Ответ 5
версия Swift 3
В основном классе ViewController
add 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()