我有一个我无法弄清楚的问题。我已经完成了一个应用程序,它将从正面拍摄一张照片,从背面摄像头拍摄一张照片,然后将它们合并在一起。
该应用程序的名称是GroupCam
但是我有一个问题,我的 UIButtons 从一开始就不会作为视网膜图像加载。如果我在界面生成器上将它们设置为@2x,它们确实会以高质量显示,但是一旦我以编程方式重新加载它们,就会出现低版本。
这是因为,在拍摄照片并且屏幕发生变化后,按钮图像会发生变化,但是当用户按下后退按钮时,相机图标会看起来很糟糕(因为正在加载低质量版本)。
请检查以下图片:
第一个屏幕: 只有右上角的按钮出现失真,因为我正在检查相机闪光灯的值并以编程方式“加载”相应的图像。
第二个屏幕: 用户移动到另一个屏幕并返回到第一个屏幕,所有按钮都重新加载,现在看起来都变形了。
为什么会这样?
编辑:
这就是我加载图像的方式。
[self.flashButton setImage:[UIImage imageNamed:@"flashOff"]
forState:UIControlStateNormal];
我在互联网上的某个地方读到,这样做会自动加载最合适的图像版本。
我也试过这个,但结果是一样的:
[self.takeButton setImage:[UIImage imageNamed:@"takePhoto.png"] forState:UIControlStateNormal];