iOS 离屏渲染问题

触发离屏渲染的操作:

  • shouldRasterize(光栅化)

  • masks(遮罩)

  • shadows(阴影)

  • edge antialiasing(抗锯齿)

  • group opacity(不透明)

  • 复杂形状设置圆角等

  • 渐变

  • Text(UILabel, CATextLayer, Core Text)

一.系统圆角

当 layer 的cornerRadius不为0, masksToBounds 必须为 true才能设置出圆角,而且屏幕渲染的性能不会随着cornerRadius值增大而降低,性能几乎不变.

二.圆角的解决方案:

1.重新绘制image 内容并且将圆角 clip

2.给图片附上一层透明的"圆角图片".(这种方法没有任何影响)

三. Shadow

1.shadow 会造成离屏渲染.

view.layer.shadowColor = UIColor.red.cgColor
view.layer.shadowOffset = CGSize(width: 5, height: 5)
view.layer.shadowOpacity = 1

设置 shadow,layer.masksToBounds不能为 true, 否则 shadow 会被 clip 掉.

view.layer.masksToBounds = false

2.给 shadow 添加 shadowPath 会取消离屏渲染.

let path = UIBezierPath(rect: view.bounds)
view.layer.shadowPath = path.cgPath

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值