美文网首页
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-设置阴影,怎么避免离屏渲染?

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

  • iOS 圆角阴影优化

    目录 离屏渲染原理 iOS添加圆角的方法比较 圆角和阴影怎么同时存在 autoLayout下怎么使用 1.离屏渲染...

  • iOS离屏渲染的检测和优化

    在iOS离屏渲染介绍了离屏渲染的逻辑和原理,我们知道离屏渲染对于性能会有较大的消耗,那么开发中怎么避免产生离屏渲染...

  • 设置圆角/阴影/模糊处理

    以下代码是解决设置圆角/阴影离屏渲染的关键 layer 里与阴影有关的设置与 Sketch 里阴影参数的对应关系是...

  • iOS离屏渲染优化

    目录 离屏渲染的本质如何设置圆角(三种方法)Shadow 阴影MaskGroupOpacityEdgeAntial...

  • iOS 避免离屏渲染

    iOS 控件设置圆角,避免离屏渲染。 离屏渲染:指GPU(图形处理器)在当前屏幕缓冲区外新开辟一个渲染缓冲区进行工...

  • 如何使用UIBezierPath、CAShapeLayer设置带

    使用UIBezierPath、CAShapeLayer设置带边框圆角,内存占用最小且渲染快速,避免了离屏渲染带来的...

  • iOS性能优化

    1 UIKit性能 离屏渲染 1 设置阴影效果 会导致: 解决办法:粗线 imgView.layer.shadow...

  • iOS 阴影,圆角,避免离屏渲染

    原理网上能搜到很多,本文只讲实践 测试环境: xcode 10.0 Swift 4.2 iPhone 7模拟器, ...

  • 使用BezierPath设置圆角和边框颜色

    为了避免离屏渲染,我用UIBezierPath给UIButton设置了圆角。但是给button的边框设置颜色时遇到...

网友评论

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

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