gpt4 book ai didi

ios - imageview 和 image aspect fit ratio 之间的差异

转载 作者:行者123 更新时间:2023-11-29 11:46:49 24 4
gpt4 key购买 nike

我在 UIView 上添加了一个 Imageview,并设置了属性 AspectToFit。根据应用程序的要求,我需要在 imageview 上添加一张图片。

iPhone 6s Plus

    float width;
float height;
float x;
float y;

CGSize imageViewSize = self.getImageView.bounds.size;// self.getImageView.frame.size;
CGSize imageSize = self.getImage.size;
CGFloat minFactor = imageViewSize.width / imageSize.width;
if (imageViewSize.height / imageSize.height < minFactor)
{
minFactor = imageViewSize.height / imageSize.height;
}
CGRect frame = self.getImageView.frame;
NSLog(@"view height..%@",NSStringFromCGRect (frame));
CGSize resultSize = CGSizeMake(minFactor * imageSize.width, minFactor * imageSize.height);
UIImage *newimage = [self imageWithImage:self.getImage scaledToSize:resultSize];
float mainwidth = imageViewSize.width;
float mainheight = imageViewSize.height;

float imagewidth = newimage.size.width;
float imageheight = newimage.size.height;

_widthdiff = mainwidth-imagewidth;
_heightdiff = mainheight-imageheight;

x = self.view.frame.size.width-width-0-_widthdiff/2;
y = self.view.frame.size.height-height-116-_heightdiff/2;

imageview = [[UIImageView alloc]
initWithFrame:CGRectMake(x, y, width, height)];
[imageview setContentMode:UIViewContentModeScaleAspectFit];

此代码适用于除 iPhone(iPhone 6 Plus、iPhone 7 Plus)以外的所有设备。正如我所见,只有大尺寸设备存在问题。

计算imageview和proper image之间的差异或比率有什么不同吗?请指教。

请引用附图iPhone 5s

最佳答案

我们可以通过计算旧图像的大小来添加新图像,然后根据需要将其添加到 UIView 中。

    CGSize imageViewSize =   self.getImageView.frame.size;
CGSize imageSize = self.getImage.size;
CGFloat minFactor = imageViewSize.width / imageSize.width;
if (imageViewSize.height / imageSize.height < minFactor)
{
minFactor = imageViewSize.height / imageSize.height;
}
CGSize resultSize = CGSizeMake(minFactor * imageSize.width, minFactor * imageSize.height);

UIImage *newimage = [self imageWithImage:self.getImage scaledToSize:resultSize];
self.duplicateimageview = [[UIImageView alloc]
initWithFrame:CGRectMake(self.view.frame.size.width/2-newimage.size.width/2, self.view.frame.size.height/2-newimage.size.height/2, newimage.size.width, newimage.size.height)];
[self.view addSubview:self.duplicateimageview];
self.duplicateimageview.image = newimage;

- (UIImage*)imageWithImage:(UIImage*)image
scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}

关于ios - imageview 和 image aspect fit ratio 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43316120/

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