三個圖層被賦予相同的父級,但是要添加的第一個圖層上的zPosition值不起作用 - 它保留在後面。爲什麼是這樣?我正在閱讀的書說,sublayer數組中的位置可以用zPosition值覆蓋。圖層z位置沒有效果
import UIKit
import PlaygroundSupport
extension CGRect {
init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) {
self.init(x:x, y:y, width:w, height:h)
}
}
let v0 = UIView(frame: CGRect(0, 0, 500, 500))
v0.backgroundColor = .white
let v1 = UIView(frame: v0.frame)
let lay1 = CALayer()
lay1.backgroundColor = UIColor(red: 1, green: 0.4, blue: 1, alpha: 1).cgColor
lay1.frame = CGRect(113, 111, 132, 194)
lay1.zPosition = 100
v1.layer.addSublayer(lay1)
let lay2 = CALayer()
lay2.backgroundColor = UIColor(red: 0.5, green: 1, blue: 0, alpha: 1).cgColor
lay2.frame = CGRect(41, 56, 132, 194)
v1.layer.addSublayer(lay2)
let lay3 = CALayer()
lay3.backgroundColor = UIColor(red: 1, green: 0, blue: 0, alpha: 1).cgColor
lay3.frame = CGRect(43, 197, 160, 230)
v1.layer.addSublayer(lay3)
v0.addSubview(v1)
PlaygroundPage.current.liveView = v0
如果您設置其他zposition,該怎麼辦?對於第2層,「lay2.zPosition = 90」和第3層「lay3.zPosition = 80」? – GIJOW
你有沒有嘗試重構使用'view.bringSubview(toFront:)'?看起來像是應該工作。 – dfd
@GIJOW不,這不能解決它。 –