Как следует обрабатывать сетчатку / обычные изображения при загрузке с URL? - PullRequest
7 голосов
/ 19 июня 2011

Я понимаю, как программно загружать изображения для моего приложения из URL, а не упаковывать их в приложение, но как мне решить проблему 1x против 2x? При необходимости я могу обслуживать обе версии из внешнего источника, но как мне справиться с этим при настройке UIImage?

1 Ответ

7 голосов
/ 20 июня 2011

Я почти уверен, что вы не можете автоматически загружать файлы изображений @ 2x автоматически.Вам придется проверить дисплей сетчатки, а затем получить соответствующие изображения, например:

UIImage *image;
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2){
  // @2x
  NSURL *imageURL = [NSURL URLWithString:@"http://www.example.com/images/yourImage@2x.png"];
  NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
  image = [UIImage imageWithData:imageData];
} else {
  // @1x
  NSURL *imageURL = [NSURL URLWithString:@"http://www.example.com/images/yourImage.png"];
  NSData * imageData = [NSData dataWithContentsOfURL:imageURL];
  image = [UIImage imageWithData:imageData];
}
UIImageView *yourImageView = [[UIImageView alloc] initWithImage:image];
...