正确显示不属于图像资源的视网膜图形

时间:2015-02-08 12:10:25

标签: ios xcode retina-display

我对视网膜图像在Xcode中的工作方式感到有些困惑。据我所知,如果我使用图像资源,我可以分别为视网膜和iPhone6 +指定2 *和3 *图像,我只是参考图像,Xcode完成剩下的工作。如果我使用的图像不是来自资产呢?比方说我在服务器上存储用户个人资料图片的图像,如果我有一张70 * 70pt的个人资料图片,我只想将图像设置为140 * 140像素的视网膜显示器吗?对于6+我会这样做吗?设置210 * 210一个?

3 个答案:

答案 0 :(得分:4)

只需在项目中包含图片,例如

  1. profile.png(70 X 70)正常
  2. profile@2x.png(140 X 140)视网膜
  3. profile@3x.png(210 X 210)适用于iphone 6+设备
  4. 并在您的项目中正常使用它。

    UIImageView *imageView = [UIImageView imageNamed:@"profile.png"];
    

    这与资产具有相同的效果。

答案 1 :(得分:0)

根据我的个人经验,当您将图像上传到服务器时,它会保存原样。 例如:70 * 70像素图像将保存为70 * 70像素。

现在,你有两个选择。

  1. 当您使用应用程序获取该图像时,它仅下载为70 * 70,图像将按原样显示在UIImageView中。然后,我建议你保持你的UIImageView尺寸为35 * 35,以保持图像清晰。

  2. 上传210 * 210像素图像,然后使用该应用程序下载图像,然后再创建2个副本。一个70 * 70,另一个140 * 140维。

  3. 我建议你采用中间方法(140 * 140像素图像,并在70 * 70像素UIImageView中显示),如果你可以在图像质量上有所妥协。

答案 2 :(得分:0)

这就是我的所作所为;

•让你的UIImageView的大小为1x(即70x70)。

•下载您需要的正确分辨率资产(@ 1x为70x70,@ 2x为140x140等)

•使用- (instancetype)initWithData:(NSData *)data scale:(CGFloat)scale或类似方法创建UIImage,传递正确的比例。