gpt4 book ai didi

ios - 如何将圆角半径添加到 UIView 周围的虚线边框

转载 作者:行者123 更新时间:2023-12-01 21:42:59 25 4
gpt4 key购买 nike

我有一个圆形的 UIView 并且我添加了一个虚线笔划。

,,,
var view = CAShapeLayer()
view.strokeColor = UIColor.red.cgColor
view.lineDashPattern = [2, 2]
view.frame = addphotoView.bounds
view.fillColor = nil
view.path = UIBezierPath(rect: addphotoView.bounds).cgPath
view.cornerRadius = 16
view.masksToBounds = true

addphotoView.layer.addSublayer(yourViewBorder)

但是 view.cornerRadius 没有按预期工作:
Demo

Corner is wiped out.

最佳答案

快速回答
您应该舍入 Layer s path
像这样:

borderLayer.path = UIBezierPath(roundedRect: addphotoView.bounds, byRoundingCorners: .allCorners, cornerRadii: CGSize(width: 16, height: 16)).cgPath

使用扩展更好的答案
您可以将所有这些逻辑移动到扩展中:
extension UIView {
@discardableResult
func addLineDashedStroke(pattern: [NSNumber]?, radius: CGFloat, color: CGColor) -> CALayer {
let borderLayer = CAShapeLayer()

borderLayer.strokeColor = color
borderLayer.lineDashPattern = pattern
borderLayer.frame = bounds
borderLayer.fillColor = nil
borderLayer.path = UIBezierPath(roundedRect: bounds, byRoundingCorners: .allCorners, cornerRadii: CGSize(width: radius, height: radius)).cgPath

layer.addSublayer(borderLayer)
return borderLayer
}
}
用法:
addphotoView.addLineDashedStroke(pattern: [2, 2], radius: 16, color: UIColor.gray.cgColor)
Demo

关于ios - 如何将圆角半径添加到 UIView 周围的虚线边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62434770/

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