2017-05-26 25 views
0

我有一个静态的tableViews和一个按钮来更改应用程序的颜色方案(主题)。对于我来说,是否有一种快速方法将整个桌子上的所有标签颜色从白色变为黑色? 即时思考如下。遍历静态表格视图中的所有标签

伪代码:

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

所以当橙色开关在“光”的一面,我想所有的标签去黑。我使用故事板来构建它,所以如果我可以避免将所有标签连接到.swift文件将会很好。

enter image description here Light

回答

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 
    } 
+0

它会更加查看--->查看 - 标签,我在内部视图中的平均标签以及 –

+0

这工作得很好!我只是让前两部分中的按钮轻弹回白色文本,当主题是在光,但这可能是一些bug创建。谢谢! – Steve