Ios 当存在@2x~iPad图像时,使用@2x文件进行iPad

Ios 当存在@2x~iPad图像时,使用@2x文件进行iPad,ios,xcode,ipad,Ios,Xcode,Ipad,我有3张图片,file.png,file@2x.png及file@2x~ipad.png。我想用file@2x.png在iPhone和iPad上 我想在interface builder中设置图像。iPhone工作正常,我在xib中设置file.png并加载file@2x.png在iPhone上。但在iPad上,file@2x~ipad.png已加载,即使我已指定file@2x.png. 当~iPad版本不存在时,有没有办法通过interface builder/xibs将其默认设置为@2x版本

我有3张图片,file.png,file@2x.png及file@2x~ipad.png。我想用file@2x.png在iPhone和iPad上

我想在interface builder中设置图像。iPhone工作正常,我在xib中设置file.png并加载file@2x.png在iPhone上。但在iPad上,file@2x~ipad.png已加载,即使我已指定file@2x.png.

当~iPad版本不存在时,有没有办法通过interface builder/xibs将其默认设置为@2x版本?(我很清楚通过编写自定义加载代码通过代码加载具有不同扩展名的图像)是否有任何设置或plists可以更改


我不想复制同一张图像,只是为了能够以不同的方式命名


谢谢。

尝试创建
文件~ipad.png
。非视网膜ipad应首先查找该文件。

尝试创建
文件~ipad.png
。非视网膜iPad应首先查找该文件。

不添加重复文件的一种方法是命名iPad版本
file@2x@2x.png
。然后,您可以使用
[UIImage ImageName:@]设置iPad版本file@2x"];或将图像设置为
file@2x.png
拥有
file@2x@2x.png
用于视网膜iPad和
file@2x.png
在普通iPad上。这样就不会有重复。

一种不添加重复文件的方法是命名iPad版本
file@2x@2x.png
。然后,您可以使用
[UIImage ImageName:@]设置iPad版本file@2x"];或将图像设置为
file@2x.png
拥有
file@2x@2x.png
用于视网膜iPad和
file@2x.png
在普通iPad上。这样就不会有重复。

使用符号链接将
myImage~iPad.png
指向
myImage@2x.png
。来源

这个答案的摘要(阅读-其他人对另一个问题的答案,所以请上去投票!)

使用
ln-smyImage@2x.png每个图像的myImage~ipad.png
。或者使用脚本:

#! /bin/sh

# Script to batch create symlinks that point ~ipad files to @2X files

# To run:
# Copy to the directory where the files are located
# Enter the following at the terminal prompt:
# bash create_ipad_image_links.txt

# For every @2x file we find in this directory we create a symlink

for file in *@2x.png
do
  echo "link: ${file//@2x/~ipad} to: $file" 
  ln -s $file ${file//@2x/~ipad}
done

使用符号链接将
myImage~iPad.png
指向
myImage@2x.png
。来源

这个答案的摘要(阅读-其他人对另一个问题的答案,所以请上去投票!)

使用
ln-smyImage@2x.png每个图像的myImage~ipad.png
。或者使用脚本:

#! /bin/sh

# Script to batch create symlinks that point ~ipad files to @2X files

# To run:
# Copy to the directory where the files are located
# Enter the following at the terminal prompt:
# bash create_ipad_image_links.txt

# For every @2x file we find in this directory we create a symlink

for file in *@2x.png
do
  echo "link: ${file//@2x/~ipad} to: $file" 
  ln -s $file ${file//@2x/~ipad}
done


我不知道这是否可行,但您可以尝试从标准文件名到您真正想要加载的文件的符号链接。@EricS我也读过,我会研究一下,谢谢。我不知道这是否可行,但是你可以尝试从标准文件名到你真正想要加载的文件的符号链接。@EricS我也读过,我会研究一下,谢谢。我不想复制图像,我需要它是@2x,这样iPhone才会使用它。你不明白图像的搜索顺序。使用image~name约定会强制相关设备使用该图像。例如,您还可以使用image~iphone.png和image~iphone@2x.png. jrtc27的答案与我的答案大致相同,增加了符号链接而不是图像副本的便利性。首先,我认为它是视网膜iphone修改器的@2x~iphone。第二,我知道图像的顺序。我知道为什么我想做的不起作用(我在ipad上使用@2x,所以它假设我想在ipad上使用retina,并试图找到最具体的文件,即@2x~ipad)。我不能复制,因为那是浪费空间。我也不能重命名该文件,因为retina iphone需要它。我不想复制图像,我需要它为@2x,以便retina iphone使用它。您不了解图像的搜索顺序。使用image~name约定会强制相关设备使用该图像。例如,您还可以使用image~iphone.png和image~iphone@2x.png. jrtc27的答案与我的答案大致相同,增加了符号链接而不是图像副本的便利性。首先,我认为它是视网膜iphone修改器的@2x~iphone。第二,我知道图像的顺序。我知道为什么我想做的不起作用(我在ipad上使用@2x,所以它假设我想在ipad上使用retina,并试图找到最具体的文件,即@2x~ipad)。我不能复制,因为那是浪费空间。我也不能重命名该文件,因为iphone需要它。问题是我需要通过interface builder/xibs进行重命名,因此我无法使用ImageName,也无法控制加载哪个版本。我问这个问题是想看看是否有任何设置或plists我可以调整。我已经编写了代码来处理通过imageNamed加载的文件,因此如果~ipad不存在,@2x将被加载,但我的代码不能用于加载XIB。这就是为什么我说它不完全是你想要的。事实上,您是否正在创建两个NIB(一个用于iPhone,一个用于iPad)?在这种情况下,只需使用
file@2x.png
而不是
file.png
作为图像和
file@2x@2x.png
将在retina iPad上正常使用。是的,我有两个笔尖。我会试试的!问题是我需要通过interface builder/xibs来实现这一点,因此我不能使用imageNamed,也不能控制加载哪个版本。我问这个问题是想看看是否有任何设置或plists我可以调整。我已经编写了代码来处理通过imageNamed加载的文件,因此如果~ipad不存在,@2x将被加载,但我的代码不能用于加载XIB。这就是为什么我说它不完全是你想要的。事实上,您是否正在创建两个NIB(一个用于iPhone,一个用于iPad)?在这种情况下,只需使用
file@2x.png
而不是
file.png
作为图像和
file@2x@2x.png
将在retina iPad上正常使用。是的,我有两个笔尖。我会试试的!我不知道使用链接编译是否会创建图像o的两个单独副本