2012-01-13 140 views
2

在我的應用程序的設計中,我爲來自遠程服務器的圖像提供了方形空間。然而,偶爾圖像是一個橫向矩形而不是正方形。調整圖像以適合比例

我不想裁剪圖像,而是將其縮小到足以放入方形約束內,然後用一些背景顏色填充剩餘空間,也許是白色。

回答

5

將您的UIImageViewcontentMode設置爲UIViewContentModeScaleAspectFit

1

我不知道這是否有幫助,但我用它來匹配視圖的大小以匹配圖像。它需要提供的矩形,並修剪它以匹配圖像。返回的CGRect可以被應用到視圖中。我用這個,所以我可以給圖像添加一個陰影(如果視圖與圖像完全不匹配,看起來不正確)。

- (CGRect) resizeCGRect:(CGRect)rect toImage:(UIImage *)image{ 
CGSize size = rect.size; 
CGSize iSize = image.size; 
if (iSize.width > iSize.height){ 
    if (iSize.width/iSize.height > size.width/size.height) 
     size.height = size.width * (iSize.height/iSize.width);      
    else 
     size.width = size.height * (iSize.width/iSize.height); 
} else { 
    if (iSize.height/iSize.width > size.height/size.width) 
     size.width = size.height * (iSize.width/iSize.height); 
    else 
     size.height = size.width * (iSize.height/iSize.width); 
} 
rect.size = size; 
return rect; 

}

1

創建您想要的顏色的背景顏色一個UIImageView。從您的服務器創建您的圖像,在圖像視圖中設置圖像,然後將圖像設置爲contentMode = UIViewContentModeScaleAspectFit

UIImageView *backgroundColorWhite = [[UIImageView alloc] initWithFrame:someObject.frame]; 
backgroundColorWhite.backgroundColor = [UIColor whiteColor]; 
UIImage *serverImage = [UIImage imageWithData:serverData]; 
backgroundColorWhite.contentMode = UIViewContentModeScaleAspectFit; 
[backgroundColorWhite setImage:serverImage];