9

私は3つの画像を持っています:

test.png
test@2x.png
test-568@2x.png

IBOutlet では、UIImageView が test.png を表示するように設定されています。

Retina のない 3.5 インチの iPhone では、test.png が表示されます。

Retina 搭載の 3.5 インチの iPhone では、test@2x.png と表示されます。

しかし、Retina 搭載の iPhone 4in では、test@2x.png が表示されます!!!

どうしたの?

ありがとう!

4

3 に答える 3

9

サフィックスは-568@2x、Default.png 起動イメージにのみ適用されます。UIImage imageNamed:(または他のUIImageメソッド)で使用される特別な接尾辞はありません。4 インチ画面で特別な画像が必要な場合は、目的の画像を自分で取得するためのコードを追加する必要があります。

于 2012-11-01T02:58:16.220 に答える
7

以下はiPhoneの場合です。iPad の場合は、追加の画像が必要になります。

背景画像の 3 つのバージョンには、次の名前を使用します。

  1. background-480h.png (320x480)
  2. background-480h@2x.png (640x960)
  3. background-568h@2x.png (640x1136)

(320x568 の iPhone 画面がないため、「-568h.png」画像は必要ありません。)

背景画像を設定するときは、画面の高さを画像名に追加するだけです。

NSString* imageName = [NSString stringWithFormat: @"background-%ih", (int)[[UIScreen mainScreen] bounds].size.height];
[view setBackgroundColor: [UIColor colorWithPatternImage: [UIImage imageNamed: imageName]]];

該当する場合、iOS は自動的に「@2x」を追加します。

画像名の高さの後の「h」は省略できますが、デフォルトの画像の iOS 規則をエミュレートするのはいいことだと思います。

于 2013-10-03T14:00:56.310 に答える
2

古いスレッドであることは承知していますが、iPhone 6/6+ の新しい画面サイズに問題がありました。

私がしたことは、さまざまな画像ファイルにこの命名規則を使用することです。

  • @1x 小型の古い電話の場合はなし
  • iPhone 4 の場合は@2x
  • -568h@2x (iPhone 5 )
  • -667h@2x (iPhone 6 )
  • @iPhone 6 Plus の場合は3 倍

そして、この Gist のコードをプロジェクトに含めるだけで (フルサイズの) 画像を自動的に生成するには: https://gist.github.com/kevindelord/fe2e691d06ab745fbb00

他に何もする必要はありません。コードでイメージをインスタンス化する場合:

[UIImage imageNamed:@"background.png”];

Gist の分類されたクラスはautomatically、現在のデバイスに対応するイメージを作成します。

CocoaDocsに記載されているUIImage +Autoresize用の Pod があります。

于 2014-10-28T15:42:19.087 に答える