gpt4 book ai didi

ios - CALayer.contentsScale 是什么意思?

转载 作者:行者123 更新时间:2023-11-29 12:44:57 26 4
gpt4 key购买 nike

我正在阅读本教程,iOS 7 Blur Effects with GPUImage .我看过文档,这个变量的意思是x px/y pt。但是我没有得到这行代码。

_blurView.layer.contentsScale = (MENUSIZE / 320.0f) * 2;

这行背后的逻辑是什么?我应该如何确定代码中的 contentsScale

如果我不设置默认为 2.0 的 contentsScale,则屏幕如下所示: enter image description here

但是我设置为(MENUSIZE/320.0f) * 2后,画面是: enter image description here

这很奇怪,因为 contentsScale 减小了,但图像变大了。 MENUSIZE 为 150.0f。

最佳答案

contentsScale 确定后备存储位图的大小,以便位图可以在非视网膜和视网膜屏幕上工作。

假设您制作了一个图层 (CALayer),您打算在其中绘制。假设它的大小是 100x100。然后为了使该层在双分辨率屏幕上看起来不错,您需要将其 contentsScale 设置为 2.0。这意味着在幕后位图是 200x200。但是它经过了转换,因此当您绘制它时仍然将其视为 100x100;您像往常一样以点为单位进行思考,并且后备存储被缩放以匹配视网膜设备的双倍像素。

在大多数情况下,您不必担心这一点,因为如果一个层是 View 的主要层,它的 contentSize 会自动为当前设备设置。但是,如果您自己创建了一个层,用代码,从整个布料中取出,然后根据主 UIScreen 的比例设置其 contentsScale 由您决定。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com