我有一个静态tableViews和一个按钮来改变应用程序的配色方案(主题)。有没有一种快速的方法让我把桌子上所有的标签颜色从白色改为黑色?我的想法如下所示。
伪码:
for subview in view.subviews {
if subview is UILabel {
subview.fontColor = .black
}
}所以当橙色的开关在“光”的一边时,我希望所有的标签都变黑。我使用了故事板来构造它,所以如果我可以避免将所有标签连接到.swift文件,那就太好了。


发布于 2017-05-26 13:09:45
我正在为您需要使用递归迭代的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
}https://stackoverflow.com/questions/44202219
复制相似问题