我想建立一个画廊,但我的问题是如何加载@2x 图像?
iOS会尝试搜索它们还是我可以指定路径?
您可以存储两种版本的图像,一种用于视网膜,一种用于非视网膜。当设备即将从网络服务器下载图像时,(假设您正在使用网络服务脚本)您可以有一个发布数据,如:
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
}
?>
当您从服务器加载图像时。
首先,当您将 imagesSize 发送到服务器时,您将请求 /Connection 发送到服务器
示例:- www.example.com/iPhone/abc.php?imagesSize = 1
在哪里 !@2x
0 表示简单(表示非视网膜)
如果您使用此方法,则图像不是淀粉。
使用这个 if/else 块
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
// Retina display
} else {
// non-Retina display
}
您可以检测您使用的是视网膜显示器还是标准显示器型号,然后加载正确的图像。