迭代静态表视图中的所有标签

时间:2017-05-26 12:56:20

标签: ios swift

我有一个静态tableViews和一个用于更改应用程序颜色方案(主题)的按钮。我有一个快速的方法可以将整个表格中的所有标签颜色从白色变为黑色吗? 我想的是以下几点。

伪代码:

for subview in view.subviews {
   if subview is UILabel {
   subview.fontColor = .black
   }
}

因此当橙色开关位于“Light”侧时,我希望所有标签都变黑。我已经使用故事板来构建它,所以如果我可以避免将所有标签连接到.swift文件那就太好了。

enter image description here Light

1 个答案:

答案 0 :(得分:1)

  
    

我正在编写你需要用递归迭代的sudo代码的代码。

  
func getLabelsInView(view: UIView) -> [UILabel] {
    var results = [UILabel]()
    for subview in view.subviews as [UIView] {
        if let label = subview as? UILabel {
            results += [label]
        } else {
            results += getLabelsInView(view: subview)
        }
    }
    return results
}
  
    

调用您需要更改颜色的任何地方

  
let labels = getLabelsInView(self.view) // or any other view / table view
    for label in labels {
      label.textColor = .black
    }