gpt4 book ai didi

ios - 如果设置角半径则不会应用阴影

转载 作者:行者123 更新时间:2023-11-30 12:18:04 25 4
gpt4 key购买 nike

我正在尝试向左下角和右下角添加圆角半径,并为其添加阴影。但由于某种原因,如果我添加这些角半径,阴影就会消失。是什么原因造成的?

这就是我所做的:

我有扩展:

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

应用角点:

myView.roundCorners([.bottomLeft, .bottomRight], 半径: 35)

添加阴影扩展:

func addShadow(offset: CGSize, color: UIColor, radius: CGFloat, opacity: Float) {
let layer = self.layer
layer.masksToBounds = false
layer.shadowOffset = offset
layer.shadowColor = color.cgColor
layer.shadowRadius = radius
layer.shadowOpacity = opacity
layer.shadowPath = UIBezierPath.init(roundedRect: layer.bounds, cornerRadius: layer.cornerRadius).cgPath

let backgroundCGColor = self.backgroundColor?.cgColor
self.backgroundColor = nil
layer.backgroundColor = backgroundCGColor
}

并添加阴影:

myView.addShadow(offset: CGSize.init(width: 0.0, height: 10.0) , color: UIColor.blue, radius: 35.0, opacity: 1.0)

为什么添加圆角后阴影消失了?

最佳答案

myView.layer.shadowPath 需要使用 UIBezierPath 进行初始化。只需给它与 myView 相同的框架和边界即可。

关于ios - 如果设置角半径则不会应用阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45150567/

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