gpt4 book ai didi

ios - 以编程方式加载视网膜(高质量)图像(在按钮上)

转载 作者:可可西里 更新时间:2023-11-01 04:22:56 29 4
gpt4 key购买 nike

我有一个问题,我一直无法弄清楚。我有一个应用程序可以从正面和背面相机拍摄一张照片,然后将它们合并在一起。

应用的名称是GroupCam

但是我有一个问题,我的 UIButtons 从一开始就不会作为 Retina 图像加载。如果我在界面生成器上将它们设置为 @2x,它们确实以高质量显示,但一旦我以编程方式重新加载它们,低版本就会出现。

这是因为,在拍照后屏幕发生变化,按钮图像发生变化,但当用户按下后退按钮时,相机图标看起来会很糟糕(因为正在加载低质量版本)。

请检查以下图片:

第一个屏幕:‖只有右上角的按钮出现扭曲,因为我正在检查相机闪光灯的值并以编程方式“加载”相应的图像。

First Screen

第二个屏幕:‖用户已经移动到另一个屏幕并返回到第一个屏幕,所有按钮都重新加载,现在它们看起来都变形了。

Second Screen

为什么会这样?

编辑:

这就是我加载图像的方式。

[self.flashButton setImage:[UIImage imageNamed:@"flashOff"] 
forState:UIControlStateNormal];

我在互联网上的某个地方读到这样做会自动加载最合适的图像版本。

我也试过这个,但结果是一样的:

[self.takeButton setImage:[UIImage imageNamed:@"takePhoto.png"] forState:UIControlStateNormal];

最佳答案

首先,可能值得验证是否实际显示了低分辨率版本。我最近跳到一个类似的假设,用不同的东西换掉图像的低分辨率版本,并确认高分辨率版本实际上仍在显示,但被扭曲了。

我的实际问题,我已经设置了

<uibutton_superview>.layer.shouldRasterize = YES;

如果任何按钮的祖先有这个设置,它可能是你的问题。

关于ios - 以编程方式加载视网膜(高质量)图像(在按钮上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782997/

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