将UIImageView的高度改为图片的高度?

3
我已经设置了一个UIImageView,它将显示根据用户在之前的表格视图中选择的内容确定的图像。
这是我当前显示图像的方式:
if ([_TitleLabel.text isEqualToString:@"Dog"]) {
    UIImage *image = [UIImage imageNamed:@"Dog.png"];
    [imageView setImage:image];
}

后续的if语句会显示不同动物的不同图片。 这些图片需要有不同的高度,并且我需要保持它们的比例。所有图片的宽度都是320个点。高度从1000个点到2500个点不等。所有图片都在项目中本地存储。我希望UIImageView的高度可以根据用户选择的动物对应的图片高度进行更改。有什么想法吗?
2个回答

2

您可以使用UIImage的宽度和高度来更新imageView的帧宽度和高度,如下所示:

if ([_TitleLabel.text isEqualToString:@"Dog"]) {
    UIImage *image = [UIImage imageNamed:@"Dog.png"];
    [imageView setImage:image];

    // update image view frame width and height.
    imageView.frame = CGRectMake(imageView.frame.origin.x, imageView.frame.origin.y, image.size.width, image.size.height);
}

注意:

使用UIViewContentModeScaleAspectFit会在图像与UIImageView边界的纵横比不同时留下空间,这不太可能是您想要的。

也不会有UIViewContentModeScaleAspectFill的帮助,您的图像将在imageView的框架内变为截断。


非常感谢!第一次就完美地运行了! - user3580512

1
imageView.contentMode = UIViewContentModeCenter;
if (imageView.bounds.size.width > ((UIImage*)imagesArray[i]).size.width && imageView.bounds.size.height > ((UIImage*)imagesArray[i]).size.height) {
       imageView.contentMode = UIViewContentModeScaleAspectFit;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接