画像のサイズは、UIImageView の実際の大きさには関係がなく、UIImageView のサイズは、Interface Builder で指定された (または割り当てられた) サイズのみに依存します。そうしないと、たとえば Retina ディスプレイに @2x 画像を使用すると、画像がすべて奇抜になります。
これを修正したい場合は、画像を設定するときにフレームも変更する必要があります。今これを行っている場合:
[imageView setImage:[UIImage imageNamed:@"myImage.jpg"]];
次のように変更します。
UIImage img = [UIImage imageNamed:@"myImage.jpg"];
[imageView setImage:img];
imageView.frame = CGRectMake(imageView.frame.origin.x, imageView.frame.origin.y,
img.size.width, img.size.height);
ただし、これは含まれているビューのレイアウトを変更しません。レイアウトの制約を使用して、iOS 6 で他のビューのサイズを自動的に変更することができます。あなたが Apple 開発者であれば、WWDC の説明ビデオを見ることができます。このビデオでは、そのシステムがどのようにうまく機能するかを説明しています。
ビューが大きくならないことに問題がなく、含まれているビューの寸法と一致しないものに変更したときに画像が境界をオーバーフローする方法が問題である場合は、インターフェイスで「サブビューをクリップ」チェックボックスを設定できます。画像ビューのビルダー。これにより、ビューが独自のバウンディング ボックスの外側には何も描画されなくなります。また、スケーリング モードを「Aspect Fill」または「Scale To Fill」に設定すると、画像は常にビューを含むビューの境界全体を埋めます。 .