在我的應用程序的設計中,我爲來自遠程服務器的圖像提供了方形空間。然而,偶爾圖像是一個橫向矩形而不是正方形。調整圖像以適合比例
我不想裁剪圖像,而是將其縮小到足以放入方形約束內,然後用一些背景顏色填充剩餘空間,也許是白色。
在我的應用程序的設計中,我爲來自遠程服務器的圖像提供了方形空間。然而,偶爾圖像是一個橫向矩形而不是正方形。調整圖像以適合比例
我不想裁剪圖像,而是將其縮小到足以放入方形約束內,然後用一些背景顏色填充剩餘空間,也許是白色。
將您的UIImageView
的contentMode
設置爲UIViewContentModeScaleAspectFit
。
我不知道這是否有幫助,但我用它來匹配視圖的大小以匹配圖像。它需要提供的矩形,並修剪它以匹配圖像。返回的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;
}
創建您想要的顏色的背景顏色一個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];