2012-01-26 36 views
0

我正在繪製一串UIImageView(100x100)作爲菜單項。每個都有自己的圖像,有些大於100x100,有些小一些。默認情況下,較大圖像的imageView會按比例縮小以很好地適合100x100框。ImageView contentMode可以正確縮放圖像嗎?

但是,小於100x100的圖像正在放大,這使得它們非常模糊。我喜歡它,所以較小的圖像保持它們自然的大小。否則,我很滿意大圖像縮放的方式,而不是較小的圖像。

我不能通過切換到UIViewContentModeScaleAspectFit,UIViewContentModeScaleAspectFillUIViewContentModeScaleToFill來實現任何目的。

有沒有人有想法或黑客如何能實現這一目標?我可以使用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; 

你需要一些額外的邏輯來爲高度做類似的事情。你是這個意思嗎?