如何将图像设置在顶部以避免 UIimageView 中的空间

2023-12-12

我有一个 UIImageView,其内容模式 Aspect Fit 大小为 220x155。我动态插入不同分辨率的不同图像,但都大于 UIImageView 的大小。当内容模式设置为 Aspect Fit 时,图像将根据比例缩放以适合 UIImageView。

我的问题是,如果 UIImageView 内的图像缩放到 220x100,我希望 UIImageView 的高度也从 155 缩小到 100,以避免元素之间出现空间。

我怎样才能做到这一点?


我编写这个方法是为了在加载图像后获取图像视图的框架。 因此,我的要求与您的情况相同:

1)具有宽高比适合内容模式的图像视图 2)获取图像的精确框架(这样您可以重新定位图像视图)

希望这可以帮助:

- (CGRect) getFrameOfImage:(AsyncImageView *) imgView
{
    if(!imgView.loaded)
        return CGRectZero;

    CGSize imgSize      = imgView.image.size;
    CGSize frameSize    = imgView.frame.size;

    CGRect resultFrame;

    if(imgSize.width < frameSize.width && imgSize.height < frameSize.height)
    {
        resultFrame.size    = imgSize;
    }
    else
    {
        float widthRatio  = imgSize.width  / frameSize.width;
        float heightRatio = imgSize.height / frameSize.height;

        float maxRatio = MAX (widthRatio , heightRatio);
        NSLog(@"widthRatio = %.2f , heightRatio = %.2f , maxRatio = %.2f" , widthRatio , heightRatio , maxRatio);

        resultFrame.size = CGSizeMake(imgSize.width / maxRatio, imgSize.height / maxRatio);
    }

    resultFrame.origin  = CGPointMake(imgView.center.x - resultFrame.size.width/2 , imgView.center.y - resultFrame.size.height/2);

    return resultFrame;
}

我在这里使用AsyncImageView但它也同样适用于UIImageView。要记住的重要一点是在加载图像后调用此方法。

Cheers!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将图像设置在顶部以避免 UIimageView 中的空间 的相关文章

随机推荐