7

アプリ内に画像をパッケージ化するのではなく、プログラムで URL からアプリの画像を読み込む方法は理解していますが、1x と 2x の問題をどのように処理すればよいですか? 必要に応じて外部ソースから両方のバージョンを提供できますが、UIImage を設定するときにそれを処理するにはどうすればよいですか?

4

1 に答える 1

7

自動化された方法で @2x 画像ファイルをリモートでロードできないことは確かです。次のように、Retina ディスプレイをテストしてから、適切な画像を取得する必要があります。

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];
于 2011-06-19T20:09:43.640 に答える