我正在阅读本教程iOS 7 Blur Effects with GPUImage。我已阅读文档,此变量表示x px / y pt
。但是我没有得到这行代码。
_blurView.layer.contentsScale = (MENUSIZE / 320.0f) * 2;
这条线背后的逻辑是什么?如何确定代码中的
contentsScale
?如果我未将
contentsScale
设置为默认值2.0,则屏幕如下所示:但在将其设置为
(MENUSIZE / 320.0f) * 2
之后,屏幕为:这很奇怪,因为
contentsScale
减少了,但是图像变大了。 MENUSIZE
是150.0f。 最佳答案
contentsScale
确定后备存储位图的大小,以便该位图可在非视网膜和视网膜屏幕上使用。
假设您要在其中绘制一个图层(CALayer)。可以说它的大小是100x100。然后,要使该层在双分辨率屏幕上看起来不错,您将希望其contentsScale
为2.0
。这意味着在后台位图为200x200。但是会对其进行转换,以便在绘制时仍将其视为100x100。您可以像往常一样以磅为单位进行思考,后备存储的缩放比例可以匹配视网膜设备的两倍像素。
在大多数情况下,您不必担心,因为如果图层是视图的主要图层,则将为当前设备自动设置其contentSize
。但是,如果您自己用代码在整个布料中创建一个图层,则可以根据主UIScreen的比例设置其contentsScale
。
关于ios - CALayer.contentsScale是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23888611/