UIImageView 내에서 이미지가 늘어나는 것을 중지하는 방법은 무엇입니까?
나는이 UIImageView
내가하는 프레임 크기를 설정 한 곳을 x = 0, y = 0, width = 404, height = 712
. 내 프로젝트에서 이미지를 UIImageView
동적으로 변경해야합니다 .
이 코드를 사용하여 이미지를 변경하고 있습니다.
self.imageView.image = [UIImage imageNamed:@"setting-image.png"];
문제는 *.png
이미지 크기가 UIImageView
프레임 크기 보다 작을 때 이미지가 늘어난다는 것입니다. 나는 그것이 늘어나는 것을 원하지 않습니다. 그렇게 할 방법이 있습니까?
당신이 사용할 수있는
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
스위프트 3 :
imageView.contentMode = .scaleAspectFit
또는 UIViewContentModeCenter
/ .center
또는 UIView 문서에 설명 된 기타 모드 .
UIViewContentModeScaleAspectFit contentMode와 함께 clipsToBounds를 설정하는 것이 저에게 트릭이었습니다. 누군가에게 도움이되기를 바랍니다!
imageView.clipsToBounds = YES;
imageView.contentMode = UIViewContentModeScaleAspectFit;
contentMode
속성을 사용하십시오 . 당신은 아마 원하는 중 하나 UIViewContentModeScaleAspectFit
또는 UIViewContentModeCenter
.
인터페이스 빌더 내에서 UIImage의 모드를 '크기 조정'에서 '가운데'로 변경합니다. 이미지가 필요한 정확한 크기인지 확인하십시오.
CGSize를 이미지 너비와 높이로 설정해야 이미지가 늘어나지 않고 이미지보기 중간에 정렬됩니다.
- (UIImage *)imageWithImage:(UIImage *)image scaledToFillSize:(CGSize)size
{
CGFloat scale = MAX(size.width/image.size.width, size.height/image.size.height);
CGFloat width = image.size.width * scale;
CGFloat height = image.size.height * scale;
CGRect imageRect = CGRectMake((size.width - width)/2.0f,
(size.height - height)/2.0f,
width,
height);
UIGraphicsBeginImageContextWithOptions(size, NO, 0);
[image drawInRect:imageRect];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Swift 3 업데이트 :
imageView.contentMode = .scaleAspectFit
contentMode를 변경하십시오. 예 :
imageView.contentMode = UIViewContentModeScaleAspectFit;
이미지 원본 크기를 사용하는 방법 -스트레칭없이
- 인터페이스 빌더 내 에서 UIImage의 모드를에서
scale to fill
로 변경하십시오Aspect Fit
.
이것을 사용하십시오 UIImageView
imageView.contentMode = UIViewContentModeScaleAspectFill;
당신은 어떤 공간도 얻지 못하며 규모는 보존됩니다. 그러나 이미지의 일부가 잘립니다.
다음을 사용하는 경우 :
imageView.contentMode = UIViewContentModeScaleAspectFit;
약간의 빈 공간이 있지만 규모는 유지됩니다.
이미지가 imageivew보다 클 때 여전히 늘어납니다.
빠른
let qCodeImage = UIImage(named: "qcode-placeholder.png")!
let qCodeImageView = UIImageView(frame: CGRectMake(0, 0, CGRectGetWidth(cardView.frame)-30, CGRectGetWidth(cardView.frame)-30))
qCodeImageView.image = qCodeImage
qCodeImageView.clipsToBounds = true
qCodeImageView.contentMode = UIViewContentMode.ScaleToFill
qCodeImageView.center = cardView.center
'code' 카테고리의 다른 글
잘 사용되지 않는 자바 어설 션 (0) | 2020.11.13 |
---|---|
indexOf 대소 문자를 구분합니까? (0) | 2020.11.13 |
문자열을 8 자리로 해시하는 방법은 무엇입니까? (0) | 2020.11.13 |
pip : _internal이라는 모듈 없음 (0) | 2020.11.13 |
GridView 정렬 : SortDirection 항상 오름차순 (0) | 2020.11.13 |