Как изменить цвет всех надписей в UIView в Swift? - PullRequest
0 голосов
/ 14 февраля 2020

Я нашел похожий вопрос здесь . Но проблема в том, что это в OBJ- C. Я не знаю код и работаю в SWIFT , поэтому, пожалуйста, кто-нибудь может объяснить и перевести этот код в кратчайшие сроки. Я все еще новичок в Свифте, поэтому, пожалуйста, помогите мне.

С уважением

Ответы [ 3 ]

2 голосов
/ 14 февраля 2020

Создать

var globalColor = UIColor.red

class CustomLbl:UILabel {
  override func awakeFromNib() {  // inside IB
    super.awakeFromNib()
    self.textColor = globalColor
  }
  override func draw(_ rect: CGRect) { // programmatically 
     super.draw(rect)
     self.textColor = globalColor
  }
}

И назначить его в IB или коде для программного вызова

self.view.setNeedsDisplay()

после изменения глобального цвета

0 голосов
/ 14 февраля 2020

с расширением. Возможно, это не идеальное решение, но как только вы примените его ко всем необходимым ярлыкам, оно будет применено ко всем ярлыкам при внесении изменений. Создайте новый файл swift и введите следующий код:

    import UIKit

extension UILabel {
    func labelColor() {
        self.textColor = UIColor.red //or whichever color you want
    }
}

А в viewDidLoad или viewWillLoad вы можете сделать:

yourLabel.labelColor()
0 голосов
/ 14 февраля 2020
self.view.subviews.forEach { (view) in    // Loop
     if let label = view as? UILabel {    // check the type
          label.textColor = .red          // assign the color
     }
}

И self - это ваш viewController

Как объясняется в аналогичном вопросе, вы должны

L oop через все UIView в себе .view.subviews и проверьте, имеет ли он тип UILabel.

...