ios – 当使用shadowPath并将shadowRadius设置为0时,为什么我的CALayer阴影在视网膜上显示模糊?

ios – 当使用shadowPath并将shadowRadius设置为0时,为什么我的CALayer阴影在视网膜上显示模糊?,第1张

概述我有一个按钮,我正在添加一个像这样的阴影: b.backgroundColor = [UIColor colorWithRed:0.820 green:0.878 blue:0.941 alpha:1.000];b.layer.cornerRadius = 3;b.layer.shadowOffset = CGSizeMake(2, 2);b.layer.shadowOpacity = 0. 我有一个按钮,我正在添加一个像这样的阴影:

b.backgroundcolor = [UIcolor colorWithRed:0.820 green:0.878 blue:0.941 Alpha:1.000];b.layer.cornerRadius = 3;b.layer.shadowOffset = CGSizeMake(2,2);b.layer.shadowOpacity = 0.2;b.layer.shadowRadius = 0;

这非常有效:

如果我像这样使用阴影路径:

b.layer.shadowPath = [UIBezIErPath bezIErPathWithRoundedRect:b.bounds cornerRadius:b.layer.cornerRadius].CGPath;

视网膜设备上的阴影模糊:

它在非视网膜设备上很好,并且如果shadowRadius不为零,它似乎正常工作.我已经尝试将contentsScale和rasterizationScale设置为2,但它不会影响阴影.

还有其他想法吗?

解决方法 从iOS 9.0开始,CALayer的contentsScale属性也会影响shadowPath的光栅化比例.换句话说,将图层的contentsScale设置为屏幕比例将解决您的问题. 总结

以上是内存溢出为你收集整理的ios – 当使用shadowPath并将shadowRadius设置为0时,为什么我的CALayer阴影在视网膜上显示模糊?全部内容,希望文章能够帮你解决ios – 当使用shadowPath并将shadowRadius设置为0时,为什么我的CALayer阴影在视网膜上显示模糊?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/web/1051838.html

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

发表评论

登录后才能评论

评论列表(0条)

保存