有没有办法检查通过nib加载的视图,以查找imageViews中图像的资源名称?

时间:2011-03-01 14:51:12

标签: ios uiviewcontroller uiimageview retina-display

寻找支持视网膜显示的简便方法。在我看来,如果我可以查看加载笔尖的视图并获取其中使用的所有图像资源的名称,我可以检查它们是否具有相应的视网膜图像并加载它(如果它是视网膜设备。)

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

我想做什么(伪代码):

for subView in self.view.subviews:
    if subView is UIImageView:
        resourceName = (UIImageView *)subView.imageName
        if retinaResourceFileExists(resourceName) and isRetinaDisplay:
            (UIImageView *)subView.image = retinaImage(resourceName)

(奖励:也许有办法迭代IBOutlet变量,但我对此表示怀疑?)

1 个答案:

答案 0 :(得分:2)

使用[UIImage imageNamed:@"Foo"];,设备将自动加载@ 2x图像。

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