在Swift中循环遍历嵌套堆栈

时间:2019-02-22 23:40:46

标签: swift for-loop uiview

我希望能够更改iOS中按钮的颜色,这些按钮位于单个垂直堆栈内任意数量的水平堆栈内。

我当时正在考虑做这样的事情

top = [node for node in B.nodes() if B.node[node]['bipartite']==0]
bottom = [node for node in B.nodes() if B.node[node]['bipartite']==1]

但是我收到警告线

  

“从未使用不可更改的值'btn';考虑将其替换为'_'或将其删除”

1 个答案:

答案 0 :(得分:0)

您有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的那些子视图。内部循环仅选择UIButton类型的已排列子视图。