阴影的设置是通过layer的shadow设置的,其中offset为阴影的偏移量,探索下offset是如何影响阴影显示的
定义6个按钮,分别表示width 和 height 从 5.0 至 -5.0的变化过程
整体效果如下:
阴影显示
根据效果图,可以得出如下结论
- 当width 为正数时,shadow向右偏移,为负数时,shadow向左偏移
- 当height为正数时,shadow向下偏移,为负数时,shadow向上偏移
阴影的设置代码如下
fileprivate func setupShader(_ w: CGFloat, _ h: CGFloat, _ btn: UIButton){
//设置阴影路径--避免离屏渲染
let path = UIBezierPath(rect: btn.bounds)
btn.layer.shadowPath = path.cgPath
//设置阴影颜色
btn.layer.shadowColor = UIColor.black.cgColor
//设置透明度
btn.layer.shadowOpacity = 0.5
//设置阴影半径
btn.layer.shadowRadius = 5.0
//设置阴影偏移量
btn.layer.shadowOffset = CGSize(width: w, height: h)
}
完整的代码见Github - Swift_shaderLayerDemo
网友评论