gpt4 book ai didi

ios - 如何使用 Mask 向 UIView 添加边框?

转载 作者:搜寻专家 更新时间:2023-11-01 06:16:06 26 4
gpt4 key购买 nike

这是我需要对我的两个按钮执行的操作。

enter image description here

这是我现在得到的。

enter image description here

我在做什么:- 在 IB 中的 stackView 中设置这些。- 添加面具- 添加宽度和颜色的边框- 添加阴影。

边界被添加,但也被蒙版切断。

代码:

public func addCornerRadiusToCorners(
_ corners: UIRectCorner,
cornerRadius: CGFloat,
borderColor: UIColor,
borderWidth: CGFloat) {

// self.layer.masksToBounds = true
// self.clipsToBounds = true
self.layer.borderWidth = borderWidth
self.layer.borderColor = borderColor.cgColor

let size = CGSize(width: cornerRadius, height: cornerRadius)
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: size)
let mask = CAShapeLayer()
mask.path = path.cgPath
self.layer.mask = mask

}

public func addDefaultShadow() {
let shadowPath = UIBezierPath(rect: self.bounds)

self.layer.masksToBounds = false
self.layer.shadowOffset = CGSize(width: 1, height: 1)
self.layer.shadowOpacity = 0.5
self.layer.shadowPath = shadowPath.cgPath
}

知道如何实现第一张照片中的结果吗?

编辑:边框正在被切割,结果刚刚从 Xcode 的 UI 调试器中获得。对不起。

最佳答案

viewDidAppear 上为您的 View 添加圆角半径

@IBOutlet weak var segmentView: UIView!

override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
segmentView.layer.cornerRadius = segmentView.frame.size.height/2;
segmentView.layer.borderWidth = 1.0;
segmentView.clipsToBounds = true

segmentView.layer.borderColor = UIColor.lightGray.cgColor

segmentView.layer.shadowColor = UIColor.black.cgColor
segmentView.layer.shadowOpacity = 0.2
segmentView.layer.shadowRadius = 10.0
segmentView.layer.shadowOffset = CGSize(width: 1, height: 1)
segmentView.layer.masksToBounds = false
}

示例输出:

enter image description here

关于ios - 如何使用 Mask 向 UIView 添加边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44778415/

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