2012-01-13 7 views
2

내 응용 프로그램 디자인에서 원격 서버에서 가져온 이미지의 사각형 공간이 있습니다. 그러나 때로는 이미지가 정사각형 대신 가로 직사각형입니다.크기에 맞게 이미지 크기 조정

이미지를 자르지 않고 대신 사각형 구속 조건에 맞도록 크기를 조정 한 다음 나머지 공간을 약간의 배경색 (흰색)으로 채 웁니다.

답변

5

UIImageViewcontentModeUIViewContentModeScaleAspectFit으로 설정하십시오.

1

이 방법이 도움이 될지 모르지만이 방법을 사용하여 이미지의 크기와 일치하도록보기의 크기를 맞 춥니 다. 제공된 rect를 가져 와서 이미지와 일치하도록 잘라냅니다. 반환 된 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]; 
관련 문제