我正在阅读本教程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。然后,要使该层在双分辨率屏幕上看起来不错,您将希望其contentsScale2.0。这意味着在后台位图为200x200。但是会对其进行转换,以便在绘制时仍将其视为100x100。您可以像往常一样以磅为单位进行思考,后备存储的缩放比例可以匹配视网膜设备的两倍像素。

在大多数情况下,您不必担心,因为如果图层是视图的主要图层,则将为当前设备自动设置其contentSize。但是,如果您自己用代码在整个布料中创建一个图层,则可以根据主UIScreen的比例设置其contentsScale

关于ios - CALayer.contentsScale是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23888611/

10-12 00:40