gpt4 book ai didi

ios - 边框是圆角裁剪的吗? swift

转载 作者:行者123 更新时间:2023-11-29 05:16:19 24 4
gpt4 key购买 nike

我看到了一些关于这个主题的问题,但它们只是其中一个问题的答案。我从一侧圆角:

func roundCorners(_ corners: UIRectCorner, radius: CGFloat) {
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.masksToBounds = true
self.layer.mask = mask
}

和实现:

detailsView.roundCorners(.allCorners, radius: 20)

然后,我尝试通过以下方式添加边框:

func addBorder(edge: UIRectEdge, color: UIColor, thickness: CGFloat) {

let border = CALayer()

switch edge {
case UIRectEdge.top:
border.frame = CGRect(x: 0, y: 0, width: frame.width, height: thickness)

case UIRectEdge.bottom:
border.frame = CGRect(x:0, y: frame.height - thickness, width: frame.width, height:thickness)

case UIRectEdge.left:
border.frame = CGRect(x:0, y:0, width: thickness, height: frame.height)

case UIRectEdge.right:
border.frame = CGRect(x: frame.width - thickness, y: 0, width: thickness, height: frame.height)

default: do {}
}

border.backgroundColor = color.cgColor
addSublayer(border)
}

和实现:

detailsView.layer.addBorder(edge: .top, color: .lightLavender, thickness: 1)

我做错了什么?我得到这个结果 - 边框被裁剪: enter image description here

最佳答案

self.layer.masksToBounds = true 裁剪边框。

您必须使用两个 View 相互嵌套才能解决此问题。还将两个 View 的框架设置为相同。

在 subview 中使用

childView.roundCorners(.allCorners, radius: 20)

在父 View 中使用

parentView.layer.addBorder(edge: .top, color: .lightLavender, thickness: 1)

关于ios - 边框是圆角裁剪的吗? swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59156759/

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