如何在swift中访问视图子图层

nel*_*LLA 2 calayer ios swift

我想通过写入来访问swift 4.1中的视图子层:

for layer : CALayer in myView.layer.sublayers {
         // Code
}
Run Code Online (Sandbox Code Playgroud)

但得到错误:

输入'[CALayer]?' 不符合协议'序列'

这是否意味着CALayerfor循环无法访问?

Mar*_*n R 10

sublayers属性是一个可选数组(默认情况下nil).你必须先解开它,例如使用可选的绑定:

if let sublayers = myView.layer.sublayers {
    for layer in sublayers {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

或者使用可选链接和forEach:

myView.layer.sublayers?.forEach { layer in
    // ...
}
Run Code Online (Sandbox Code Playgroud)