2012-01-26 9 views
0

私はメニュー項目としてUIImageView(100x100)の束を描いています。それぞれは独自のイメージを持ち、いくつかは100x100よりも大きく、さらに小さいものもあります。デフォルトでは、画像が大きい画像ビューは、100x100ボックスにうまく収まるように縮小されています。ImageView contentModeは画像を適切に拡大するか?

しかし、100x100より小さい画像は拡大されているため、実際にはぼやけてしまいます。私はそれが小さいイメージが単に彼らが自然にあるサイズのままになるようにしたいと思います。それ以外の場合は、大きな画像が拡大縮小される方法に満足しています。小さい画像ではありません。

UIViewContentModeScaleAspectFit,UIViewContentModeScaleAspectFill、またはUIViewContentModeScaleToFillに切り替えることで何も達成できませんでした。

私はこれを達成する方法に誰かがアイデアやハックを持っていますか? if文を使用してイメージの寸法を確認し、contentMode(Center?)を送信できましたが、NSDictionaryから各アイテムを描画しているので、ちょっとハッキリです。for inループです。どんな助けもありがたい。おかげ

答えて

4

私はあなただけ最初にあなたのフレームを設定する前に画像の大きさを確認することができ、正しく理解していれば、のようなもの:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageName:@"myimage.png"]]; 
[imageView sizeToFit]; 

CGRect newFrame = imageView.frame; 
if (newFrame.size.width > 100) newFrame.size.width = 100; 
imageView.frame = newFrame; 

あなたは高さについても同様のことを行うためにいくつかの余分なロジックが必要になります。これはあなたが意味することですか?

関連する問題