如何从远程服务器加载iOS中的不同图像

时间:2012-07-04 12:34:50

标签: objective-c ios

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

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

3 个答案:

答案 0 :(得分:1)

从服务器加载图像时。

首先,当您将imagesSize发送到服务器

时,您会向服务器发送请求/连接

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

在哪里!对于@ 2x

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

如果你使用这种方法,那么图像不会淀粉。

答案 1 :(得分:1)

你可以存储两个版本的图像,一个用于视网膜,一个用于非视网膜。当设备即将从Web服务器下载图像时(假设您使用的是webservice脚本),您可以获得如下的帖子数据:

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
    } 
 ?>

答案 2 :(得分:0)

使用此if / else块

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

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