【问题标题】:Line circle with shadow swift带阴影 swift 的线圈
【发布时间】:2018-07-17 10:26:36
【问题描述】:

我用阴影创建了线圆,但是当我尝试更改shadowRadius时,阴影没有显示

let path = UIBezierPath(ovalIn: rect)
let shapeLayer              = CAShapeLayer()
shapeLayer.path             = path.cgPath
shapeLayer.fillColor        = UIColor.clear.cgColor
shapeLayer.strokeColor      = UIColor.white.cgColor
shapeLayer.lineWidth        = 1
shapeLayer.shadowOpacity    = 0.9
shapeLayer.shadowColor      = UIColor.white.cgColor
shapeLayer.shadowOffset     = .zero
shapeLayer.shadowRadius     = 10.0
//shapeLayer.shadowPath       = path.cgPath

layer.addSublayer(shapeLayer)

line circle with default corner radius

line circle with corner radius 10.0

有人可以帮助我吗?

【问题讨论】:

  • 图中有阴影,只是淡淡的。
  • 是的,但我想要更大的阴影,半径超过 20.0。当我设置这个半径时,我没有看到阴影
  • 您可以添加输出所需的图像吗?
  • 添加了输出图片

标签: ios swift core-graphics shadow uibezierpath


【解决方案1】:

如果您想通过“更强”的阴影创建效果,您可以使用已被描边的阴影路径大于“投射阴影”的路径来实现。这可以使用copy(strokingWithWidth:lineCap:lineJoin:miterLimit:transform:) 来实现:

shapeLayer.shadowPath = path.cgPath.copy(strokingWithWidth: width, lineCap: .round, lineJoin: .round, miterLimit: 0)

这就是这样一个阴影(红色)的样子,无论有没有任何模糊(阴影半径):

您可以配置描边阴影路径的shadowBlurwidth来达到您想要的效果。下面是一些例子:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-21
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    相关资源
    最近更新 更多