gpt4 book ai didi

swift - 如何将圆角半径添加到 UIStackView 并屏蔽 subview

转载 作者:可可西里 更新时间:2023-11-01 01:06:56 26 4
gpt4 key购买 nike

我为 UIStackView 使用一个简单的子类来为其添加背景颜色:

    func backgroundColor(_ color: UIColor?) {
backgroundView.backgroundColor = color
}

func cornerRadius(_ radius: CGFloat) {
backgroundView.clipsToBounds = true
backgroundView.layer.cornerRadius = radius
}

问题是使用自定义 View 作为容器的圆角半径不会屏蔽 arrangedSubviews。我试图通过覆盖 addArrangedSubview 方法来解决这个问题:

    override func addArrangedSubview(_ view: UIView) {
super.addArrangedSubview(view)
view.mask = backgroundView
}

但它会产生奇怪的东西并向控制台发送垃圾邮件:

- changing property mask in transform-only layer, will have no effect

最佳答案

除了将背景添加到堆栈 View 之外,您还可以将堆栈 View 作为 subview 添加到背景并用角遮盖背景。

let wrapper = UIView()               // Creating background
wrapper.layer.cornerRadius = 10
wrapper.layer.masksToBounds = true
wrapper.backgroundColor = .yellow

let stack = UIStackView() // Creating stack
stack.frame = wrapper.bounds
stack.autoresizingMask = [.flexibleWidth, .flexibleHeight]
wrapper.addSubview(stack)

关于swift - 如何将圆角半径添加到 UIStackView 并屏蔽 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57665699/

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