方式1: 通过设置shadowColor、shadowRadius...等属性
extension CALayer{
1.shadowColor:阴影颜色,可设置透明度等.
2.shadowOffset:偏移量.,xy表示view左上角,width表示阴影与x的偏移量,height表示阴影与y值的偏移量
3.shadowOpacity = 0.4//阴影透明度,默认为0则看不到阴影.因此要看到阴影这个值必须大于0,shadowColor的透明度也要大于0
4.shadowRadius:5.模糊计算的半径,取平均值的半径,设置为0的话则为一个矩形块.
5.模糊度的解释:每一个像素取平均值,分母的取值范围,越大越模糊.感觉这篇文章讲的比较容易懂
6.注意:如果clipsToBounds设置为YES,则阴影效果消失
func addShadow(shadowColor:UIColor,shadowOpacity:CGFloat,shadowRadius:CGFloat,shadowOffset:CGSize){
self.shadowColor = shadowColor.cgColor
self.shadowOffset = shadowOffset
self.shadowRadius = shadowRadius
self.shadowOpacity = Float(shadowOpacity)
}
}
方式二:定制阴影,可以实现任何样式,任何方向的阴影效果
原文链接
就是通过设置 shadowPath 属性,我们可以给当前的layer 提供一个路径,这样我们就能实现各种样式的阴影效果了
func applyCurvedShadow(view: UIView) {
let size = view.bounds.size
let width = size.width
let height = size.height
let path = UIBezierPath()
path.move(to: CGPoint(x: width, y: 0))
path.addLine(to: CGPoint(x: width + 3, y: 0))
path.addLine(to: CGPoint(x: width + 3, y: height))
path.addLine(to: CGPoint(x:0, y: height))
path.close()
let layer = view.layer
layer.shadowPath = path.cgPath
layer.shadowColor = UIColor.black.cgColor
layer.shadowOpacity = 0.3
layer.shadowRadius = 3
layer.shadowOffset = CGSize(width: 3, height: 0)
}