Вот базовая имплементация +[UIImage imageNamed:]
+ (UIImage *)imageNamed:(NSString *)aImageName
{
NSData *imageData;
if ([UIScreen mainScreen].scale == 2.0) {
imageData = [NSData dataWithContentsOfFile:[aImageName stringByAppendingString:@"@2x"]];
} else {
imageData = [NSData dataWithContentsOfFile:aImageName];
}
return [UIImage imageWithData:imageData];
}
Она проверяет экран на retina и загружает @2x.
но вы можете сделать swizzle метода +[UIImage imageNamed:], и там загрузить картинку своим способом (как вам удобно).