Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否有方法检查通过nib加载的视图,以在ImageView中查找图像的资源名称?_Ios_Uiviewcontroller_Uiimageview_Retina Display - Fatal编程技术网

Ios 是否有方法检查通过nib加载的视图,以在ImageView中查找图像的资源名称?

Ios 是否有方法检查通过nib加载的视图,以在ImageView中查找图像的资源名称?,ios,uiviewcontroller,uiimageview,retina-display,Ios,Uiviewcontroller,Uiimageview,Retina Display,寻找支持视网膜显示的简单方法。我突然想到,如果我可以通过一个nib加载的视图查看并获得所有在那里使用的图像资源的名称,我可以检查它们是否有相应的视网膜图像并加载它(如果是视网膜设备) 我知道在加载子视图后如何迭代子视图,但我不知道如何(或者是否可以)在Interface Builder中设置资源名称。我试图避免在代码中设置所有图像名称 我想做什么(在伪代码中): (好处:也许有一种方法可以迭代IBOutlet变量,但我对此表示怀疑?使用[UIImage imageNamed:@“Foo”]和设备

寻找支持视网膜显示的简单方法。我突然想到,如果我可以通过一个nib加载的视图查看并获得所有在那里使用的图像资源的名称,我可以检查它们是否有相应的视网膜图像并加载它(如果是视网膜设备)

我知道在加载子视图后如何迭代子视图,但我不知道如何(或者是否可以)在Interface Builder中设置资源名称。我试图避免在代码中设置所有图像名称

我想做什么(在伪代码中):


(好处:也许有一种方法可以迭代IBOutlet变量,但我对此表示怀疑?

使用
[UIImage imageNamed:@“Foo”]
和设备将自动加载@2x图像


Interface Builder也会自动加载视网膜图像

好吧,这太棒了。请注意,在iOS4(?)之前,您必须在imageNamed中使用的文件名中包含扩展名。但它仍然会加载@2x图像。
for subView in self.view.subviews:
    if subView is UIImageView:
        resourceName = (UIImageView *)subView.imageName
        if retinaResourceFileExists(resourceName) and isRetinaDisplay:
            (UIImageView *)subView.image = retinaImage(resourceName)