1

高解像度の画像があり、それをビューの背景として使用したいと考えています。しかし、Interface Builder を介して、またはプログラムで追加すると、その部分しか表示されません。これは役に立ちません。

UIImage* _backGround = [UIImage imageNamed:@"background-clean@2x.png"];
  CGRect _viewFrame = self.view.frame;
 [_backGround drawInRect:_viewFrame];
UIImageView* _backGroundView = [[UIImageView alloc] initWithImage:_backGround];
[self.view addSubview:_backGroundView];
[self.view sendSubviewToBack:_backGroundView];

そしてこれも:

_backGroundView.contentMode =UIViewContentModeScaleAspectFit;

では、サイズにもかかわらず、フルサイズでビューに収まるように、この画像をどのようにスケーリングできますか? PS 下手な英語で申し訳ありません。

4

3 に答える 3

2

アリに同意します。網膜サイズの画像を作成するときは、それらを拡大縮小してプロジェクトに追加する必要があります。どちらのバージョンでも、拡張子または拡張子を付けにイメージの完全な名前を指定するだけです。@2x.png.png

ただし、実装を修正するには、コードを 1 行追加するだけで済みます。

UIImage* _backGround = [UIImage imageNamed:@"background-clean"];
UIImageView* _backGroundView = [[UIImageView alloc] initWithImage:_backGround];

_backGroundView.frame = self.view.frame;

[self.view addSubview:_backGroundView];
[self.view sendSubviewToBack:_backGroundView];

の を変更するframeUIImageView、その内容 (つまり、画像) も同様にスケーリングされます。

于 2013-02-03T17:47:24.813 に答える
0
[self.view setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background-clean"]]];
于 2014-04-14T16:25:53.410 に答える
0

@2x画像の名前を参照するときは、コードに含めないでください。

あなたがすべき:

  • Xcode プロジェクト リソースに と の両方のファイルBackground.pngを含めます。Background@2x.pngBackground@2x.pngBackground.png
  • ただし、このファイル (たとえばimageNamed:)は常に次のように参照する@"Background.png"か、単に@"Background"次のように参照します。[UIImage imageNamed:@"Background"]

その後、iOS は、デバイスの画面が Retina かどうBackground.pngBackground@2x.pngに応じて適切な画像を選択し、魔法のように自動的に実行します。

詳細については、Apple ドキュメントのこちらを参照してください

于 2013-02-03T15:37:20.960 に答える