Swift--给UIView添加阴影效果

Swift--给UIView添加阴影效果,第1张

  override   init (frame:CGRect) {

       //定义view的大小

        let   selfFrame =CGRect(x:0, y:0, width:kScreenW-75, height:kScreenW*0.93)

        super .init(frame: selfFrame)

        //定义view的背景颜色

        backgroundColor = .white

        //定义view的角度

        layer.cornerRadius = 5

          //定义view的阴影颜色

        layer.shadowColor = UIColor.colorWidthHexString(hex: "#000000").cgColor

        //阴影偏移量

        layer.shadowOffset=CGSize(width:0, height:1)

        //定义view的阴影宽度,模糊计算的半径

        layer.shadowRadius = 10

        //定义view的阴影透明度,注意:如果view没有设置背景色阴影也是不会显示的

        layer.shadowOpacity = 0.1

    }

1、UIView切圆角

UIView在切圆角的时候使用

会导致离屏渲染

解决办法:不能使用masksToBounds,view.clipsToBounds直接切圆角:

这是方法适用于切全圆角,如果是切指定圆角的时候就不行了;

增加切指定圆角的方法

使用改方法满足了切指定圆角的需求;但是又会导致离屏渲染问题;

这儿想到一个办法就是使用UIImageView替换UIView或者是在底层插入UIImageView;

首先要设置一个UIImage根据背景设置

方法实现

之后再,具体实现见下面UIImageView切圆角方法;

2、UIView增加阴影效果:

会导致离屏渲染。

解决办法:设置阴影路径可避免离屏渲染

实现上述方法就可以实现圆角+阴影效果

3、UIImageView切圆角

简便的方法

在iOS9.0之后加载png图片设置圆角不会导致离屏渲染;

但是如果在给UIImageView增加一个背景色就会导致离屏渲染;

最优的解决办法:通过给UIImageView加载的图片切圆角;

给图片切圆角之后重新赋值给UIImageView;如下

需要给定size时,如果使用的Masnory添加的预约,则需要立即更新之后才会生效

将持续优化方法,找到最适合的方法


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11468104.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存