gpt4 book ai didi

ios - 视网膜和非视网膜兼容的 UIImage 堆叠和定位

转载 作者:行者123 更新时间:2023-11-29 04:44:02 25 4
gpt4 key购买 nike

我经常需要将两个 UIImages 定位并堆叠到 UIView 中。例如,在照片周围(后面)放置相框,然后显示它。通过修改图像的帧来指定位置不适用于视网膜和非视网膜设备,因为硬编码的帧值不会缩放。

例如,如果我有一个相框,其图像为56x56(视网膜),而实际图像为52x52(视网膜),则需要将其放置在CGRectMake(2, 2, 54, 54) 在相框顶部。但是,如果用户使用非视网膜,则此操作将会失败,因为这些值将不正确(它们现在是 CGRectMake(1, 1, 27, 27))。

分辨率安全图像处理的正确方法是什么?有没有办法组合两个图像(每个图像都有常规图像和@2x.pngs),以便在任一屏幕类型上正确显示?

最佳答案

您可以使用 UIScreen 缩放属性。这是一个只读属性。在 iPhone 4 之前的设备(非视网膜显示屏)中,该值为 1.0,但对于视网膜显示屏,该值为 2.0。因此,您可以将此属性存储到一个局部变量(例如称为 CGFloat scaleFactor)并将其与上面的值相乘:

CGFloat scaleFactor=[[UIScreen mainscreen] scale];
... = CGRectMake(1.0*scalefactor,1.0*scaleFactor,27.0*scaleFactor,27.0*scaleFactor);

关于ios - 视网膜和非视网膜兼容的 UIImage 堆叠和定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9919151/

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