寻找支持视网膜显示器的简单方法。我突然想到,如果我可以查看一个 nib 加载的视图并获取那里使用的所有图像资源的名称,我可以检查它们是否有相应的视网膜图像并加载它(如果它是一个视网膜设备。)
我知道如何在加载后遍历子视图,但我不知道如何(或者如果可以的话)获取在 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 变量,但我对此表示怀疑?)