UI 要素ごとに異なるグラフィックを使用するため、(おそらく?) 条件を記述する必要があることに気付いたとき、iPhone バージョンのアプリはほぼ完成しました。これにより、コードが非常に面倒になります。私は 15 の異なるカスタム UI コントロールを持っていますが、すべてのメソッドに対して条件 (「ipad が image_ipad をロードする場合、iphone が image_iphone をロードする場合」) を設定することがこれを行うための最良の方法であるとは想像できません。これに対処するための特定のテクニックを提案できる人はいますか? または、網膜と通常の間でできるように画像に名前を付ける方法はありますか?
2 に答える
基本的な画像名を渡すだけで済みます。画像名を "Apple.png" とするUIImage *image = [UIImage ImageNamed:@"Apple.png"]
と、このように取得画像名を記述し、次の場合の画像の名前は次のようになります。
1. iPad > put ~ipad 、画像名は"Apple~ipad.png"
2. iPhone > put ~iphone 、画像名は"Apple~iphone.png"
3. Retinaディスプレイの場合 > put @2x 、画像名は"Apple@2x.png"
4. iPad と iPhone 用のRetinaディスプレイ用のdiffrenet画像がある場合、このようになります ,, iPad 用,, iPhone 用"Apple@2x~ipad.png"
"Apple@2x~iphone.png"
このように名前を付けると、iOS が最も一致する画像名を検出して読み込みます。
Retina 用と非 Retina 用のバージョンが必要な場合は、アセットの 2 つのバージョンをバンドルに保存するだけです。アセットが button.png という名前の場合は、次を保存します。
非 Retina バージョンの -button.png。-button@2x.png は Retina ディスプレイ バージョンです。
あなたのコード:
UIImage * myImage = [UIImage imageNamed:@"button.png"];
システムは、網膜の場合は @2x.png を自動的にチェックし、非網膜の場合は他のものを選択します
myImage をカスタム UI に配置すると、OS が残りの作業を行います ;-)