我有一个静态tableViews和一个用于更改应用程序配色方案(主题)的按钮。是否可以快速将整个表格中所有标签的颜色从白色更改为黑色?
我在想类似下面的东西。

伪代码:

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

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

ios - 遍历静态表 View 中的所有标签-LMLPHP
ios - 遍历静态表 View 中的所有标签-LMLPHP

最佳答案

我正在为您的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
    }

10-04 11:03