code

UIImageView 내에서 이미지가 늘어나는 것을 중지하는 방법은 무엇입니까?

codestyles 2020. 11. 13. 08:14
반응형

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

참고 URL : https://stackoverflow.com/questions/7035523/how-to-stop-an-image-from-stretching-within-a-uiimageview

반응형