1

我想建立一个画廊,但我的问题是如何加载@2x 图像?

iOS会尝试搜索它们还是我可以指定路径?

4

3 回答 3

1

您可以存储两种版本的图像,一种用于视网膜,一种用于非视网膜。当设备即将从网络服务器下载图像时,(假设您正在使用网络服务脚本)您可以有一个发布数据,如:

NSString *postData;
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
   postData = @"retina_device";
} else {
   postData = @"non_retina_device";
}

您将知道设备要求的图像版本,假设您将在 php 中编写 webservice sript

 <?php
    $postData = $_REQUEST['postData'];
    if($postData == @"retina_device"){
       //return all images for retina device
    } 
 ?>
于 2012-07-04T12:55:57.933 回答
1

当您从服务器加载图像时。

首先,当您将 imagesSize 发送到服务器时,您将请求 /Connection 发送到服务器

示例:- www.example.com/iPhone/abc.php?imagesSize = 1

在哪里 !@2x

0 表示简单(表示非视网膜)

如果您使用此方法,则图像不是淀粉。

于 2012-07-04T12:47:25.933 回答
0

使用这个 if/else 块

if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
    ([UIScreen mainScreen].scale == 2.0)) {
  // Retina display
} else {
  // non-Retina display
}

您可以检测您使用的是视网膜显示器还是标准显示器型号,然后加载正确的图像。

于 2012-07-04T12:37:54.517 回答