我希望能够更改 iOS 中按钮的颜色,这些按钮位于任意数量的水平堆栈内,而水平堆栈位于单个垂直堆栈内。
我想做这样的事情
for view in self.view.subviews as [UIView] {
if let hstack = view as? UIStackView {
for btn in hstack.arrangedSubviews {
if let btn = view as? UIButton {
btn.backgroundColor = UIColor.red
}
}
}
}
但是我收到一条警告线
"Immutable value 'btn' was never used; consider replacing with '_' or removing it"
最佳答案
你有 2 个名为 btn
的常量。第一个由 for
循环创建,第二个由 if let
创建。未使用 for
循环 btn
。
我建议您这样编写代码:
for case let hstack as UIStackView in self.view.subviews {
for case let btn as UIButton in hstack.arrangedSubviews {
btn.backgroundColor = .red
}
}
这使用模式从数组中选择特定类型的项目。第一个循环仅选择类型为 UIStackView
的 subview 。内部循环仅选择类型为 UIButton
的已排列 subview 。
关于swift - 在 Swift 中循环遍历嵌套堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54836696/