在this question中发布的示例日志中,结果是相同的。有谁知道两者之间是否存在逻辑上的区别?
甚至Apple's description也令人困惑。这是scale
的描述:
这是他们的description of nativeScale
:
天然和天然之间有什么区别?
最佳答案
scale和nativeScale都可以告诉您一个点对应多少像素。但是请记住,点将呈现到intermediate buffer of pixels,然后将其调整大小以匹配屏幕分辨率。因此,当我们问“1 pt对应多少像素?”时,它可能表示中间像素(比例)或最终像素(nativeScale)。
在iPhone Plus上,小数位数为3,而nativeScale为2.6。这是因为内容是以3倍(1点= 3像素)渲染的,但是随后将生成的位图按比例缩小,从而得到1点= 2.6像素。
因此,scale处理中间位图,nativeScale处理最终位图。
没有显示变焦。如果启用显示缩放,则缩放比例将保持不变,为3,因为中间缓冲区仍以1点= 3像素渲染。但是本地比例变为2.8。
因此,如果要检查物理屏幕,请使用比例尺。例如,如果您有一个仅在iPhone Plus上运行的应用程序,则可以执行以下操作:
if scale != 3 {
print("Not supported")
}
不是:
if nativeScale != 2.6 {
print("Not supported")
}
当用户启用显示缩放时,第二个代码片段无法完成预期的操作。