我有一个静态tableViews
和一个用于更改应用程序配色方案(主题)的按钮。是否可以快速将整个表格中所有标签的颜色从白色更改为黑色?
我在想类似下面的东西。
伪代码:
for subview in view.subviews {
if subview is UILabel {
subview.fontColor = .black
}
}
因此,当橙色开关位于“浅”侧时,我希望所有标签都变黑。我已经使用情节提要构建了它,所以如果我可以避免将所有标签都连接到.swift文件,那就太好了。
最佳答案
我正在为您的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
}