美文网首页
OC-设置阴影,怎么避免离屏渲染?

OC-设置阴影,怎么避免离屏渲染?

作者: SK丿希望 | 来源:发表于2020-12-15 14:53 被阅读0次

    通常我们设置阴影就是以下几句代码就可以简单设置了, 不过这样通常会造成离屏渲染


    解决前效果图
    - (void)viewDidLayoutSubviews {
        [super viewDidLayoutSubviews];
        if (self.bgView.layer.cornerRadius != 4) {
            self.bgView.layer.cornerRadius = 4;
            self.bgView.layer.shadowColor = [UIColor blackColor].CGColor;//shadowColor阴影颜色
            self.bgView.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset阴影偏移,x向右偏移2,y向下偏移6,默认(0, -3),这个跟shadowRadius配合使用
            self.bgView.layer.shadowOpacity = 0.3;//阴影透明度,默认0
            self.bgView.layer.shadowRadius = 4;//阴影半径,默认3
        }
    }
    

    其实多一句代码就可以避免离屏渲染(是不是感觉老尴尬了啊)

    self.bgView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.bgView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight|UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(self.bgView.layer.cornerRadius, self.bgView.layer.cornerRadius)].CGPath;//参数依次为大小,设置四个角圆角状态,圆角曲度  设置阴影路径可避免离屏渲染
    

    最终代码

    - (void)viewDidLayoutSubviews {
        [super viewDidLayoutSubviews];
        if (self.bgView.layer.cornerRadius != 4) {
            self.bgView.layer.cornerRadius = 4;
            self.bgView.layer.shadowColor = [UIColor blackColor].CGColor;//shadowColor阴影颜色
            self.bgView.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset阴影偏移,x向右偏移2,y向下偏移6,默认(0, -3),这个跟shadowRadius配合使用
            self.bgView.layer.shadowOpacity = 0.3;//阴影透明度,默认0
            self.bgView.layer.shadowRadius = 4;//阴影半径,默认3
            self.bgView.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.bgView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerBottomRight|UIRectCornerTopLeft|UIRectCornerTopRight cornerRadii:CGSizeMake(self.bgView.layer.cornerRadius, self.bgView.layer.cornerRadius)].CGPath;//参数依次为大小,设置四个角圆角状态,圆角曲度  设置阴影路径可避免离屏渲染
        }
    }
    
    解决后效果图
    查看离屏渲染步骤图
    查看离屏渲染步骤图

    相关文章

      网友评论

          本文标题:OC-设置阴影,怎么避免离屏渲染?

          本文链接:https://www.haomeiwen.com/subject/vnlwgktx.html