gpt4 book ai didi

ios - 约束和子层(CALayer)不更新

转载 作者:行者123 更新时间:2023-12-01 19:51:17 25 4
gpt4 key购买 nike

我在 superView 中创建了一个左边框

...
var leftLayer: CALayer?
override public func awakeFromNib() {
super.awakeFromNib()
self.leftLayer = CALayer()
self.leftLayer?.borderColor = UIColor.red.cgColor
self.leftLayer?.borderWidth = 1
self.layer.addSublayer(self.leftLayer!)
...

然后在 layoutSubviews 我尝试根据约束更新边框:
...
override public func layoutSubviews() {
super.layoutSublayers(of: layer)
leftLayer!.frame = CGRect(x: 0,
y: 0,
width: 1,
height: self.frame.size.height)

}
...

但是子 CALayers 没有遵循顶级 CALayer/UIViews 约束。我看过 this ,但无法将图层添加到 super View 。

你知道如何让子 CALayer 遵循包含 UIView 的约束吗?

最佳答案

覆盖 View 的 frame 属性以调整其子层框架:

override var frame: CGRect {
didSet{
leftLayer!.frame = CGRect(x: 0,
y: 0,
width: 1,
height: self.frame.size.height)
}
}

关于ios - 约束和子层(CALayer)不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45750882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com