gpt4 book ai didi

ios - UIImageView 内容模式不起作用

转载 作者:可可西里 更新时间:2023-11-01 06:21:34 24 4
gpt4 key购买 nike

我有一个大图像 (1920*1080) 和一个较小的 UIImageView (320*568),在 Storyboard中缩放到全屏大小。

现在我想全屏显示这个大图像,但适合 UIImageView。

我已经尝试了所有的内容模式,但它们都不起作用。每次它只显示全屏大小的图像左上角部分。

 [self.imageView setFrame:self.view.bounds];
[self.imageView setContentMode:UIViewContentModeScaleAspectFit] ;
[self.imageView setImage:image] ;
[self.view insertSubview:_imageView aboveSubview:_previewView] ;

那么我的情况可能出了什么问题?这可能是 Xcode Storyboard配置错误吗?

谢谢。

最佳答案

如果您在 ImageView 中只看到图像的顶角,则可能的原因是:您的 ImageView 框架超出屏幕尺寸或未设置内容模式。在您的代码中,您将框架设置为 super View 的边界。如果您使用的是自动布局,请检查自动布局是否设置正确。如果没问题,请尝试在设置框架之前设置 UIImageView ContentMode。

// Setting the content mode.
self.imageView.contentMode = UIViewContentModeScaleAspectFit;
// Now set the frame.
[self.imageView setFrame:self.view.bounds];

其他解决方案是您可以缩小图像以适合您的 ImageView。为此,您可以使用以下功能:

- (UIImage *)scaleImage:(UIImage *)orginalImage
{
float widthFactor = photoImageView.frame.size.width / orginalImage.size.width;
CGSize destinationSize = CGSizeMake(orginalImage.size.width * widthFactor,orginalImage.size.height * widthFactor);
UIGraphicsBeginImageContext(destinationSize);
[orginalImage drawInRect:CGRectMake(0,0,destinationSize.width,destinationSize.height)];
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
photoImageView.image = scaledImage;
return scaledImage;
}

关于ios - UIImageView 内容模式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31198753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com