2013年4月22日月曜日

UIImageVIewで画像を貼付けると歪む

皆さん画像をviewに貼付ける時は、以下のようなコードを利用すると思います。

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 240)];
[imageView setImage: [UIImage imageNamed:@"hoge.png"]];
[[self view] addSubview:imageView];

ただ、この方法でうまく行くのは画像サイズが320x240の時だけで、その他のサイズの場合は、勝手に伸び縮みしてしまいます。

「ちょっと見苦しい」だけですめばいいのですが、人間の画像の場合は後から何を言われるかわからないのでヒヤヒヤものです。

そんな場合は1行コードを足してあげましょう。
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 240)];
[imageView setContentMode:UIViewContentModeScaleAspectFit]; // ここを追加
[imageView setImage: [UIImage imageNamed:@"hoge.png"]];
[[self view] addSubview:imageView];

ContentMode プロパティに UIViewContentModeScaleAspectFit を設定するだけで、勝手にアスペクト比を保った拡大縮小をしてくれます。


※この手法は、webなどから画像を引用してきた際などの画像サイズが一定では無い場合に有用です。最初から画像のサイズがわかっている場合は、面倒臭がらず画像修正ソフトでリサイズする事をオススメします。

0 件のコメント:

コメントを投稿