UIView拐角半径问题

问题描述 投票:0回答:2

我必须设置UIView的某些拐角半径,并通过此代码进行设置:

@IBDesignable
class MyUIviewCorner: UIView {

    override func layoutSubviews() { setup() } 

    func setup() {
        let r = self.bounds.size.height / 2
        let path = UIBezierPath(roundedRect: self.bounds,
        byRoundingCorners: [.topLeft, .topRight],
        cornerRadii: CGSize(width: r, height: r))
        let mask = CAShapeLayer()
        mask.backgroundColor = UIColor.clear.cgColor
        mask.path = path.cgPath
        layer.borderWidth = 1.5
        layer.borderColor = UIColor.red.cgColor
        self.layer.mask = mask
    }
}

但是我得到以下结果:enter image description here

我不明白为什么。

为什么在上角半径上有此空白?

enter image description here

如果设置底角半径,我会得到:

ios swift uiview rounded-corners
2个回答
0
投票

您不应该为此使用掩码,您可以仅使用layer.maskedCorners属性。


0
投票

您可以看到为什么增加边框宽度的原因:

© www.soinside.com 2019 - 2024. All rights reserved.