将UIImageView高度更改为图像高度?

时间:2014-07-03 08:23:51

标签: ios xcode image uiimageview

我有一个UIImageView设置,它将显示由用户在上一个表视图中选择的内容确定的图像。

这就是我目前正在显示图像的方式:

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

后续if语句后面会显示不同动物的不同图像。

这些图像需要有不同的高度,我需要保持它们的比例。所有图像的宽度为320磅。高度从1000分到2500分之间不等。所有图像都位于项目的本地。我希望UIImageView的高度更改为与用户选择的动物对应的图像高度。有什么想法吗?

2 个答案:

答案 0 :(得分: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);
}

注意:

如果图像与UIImageView框架的宽高比不同,则使用UIViewContentModeScaleAspectFit将在图像和UIImageView边界之间留出空间,这可能不是您想要的。

UIViewContentModeScaleAspectFill也不会有帮助,您的图片会在图片视图的框架内被截断。

答案 1 :(得分: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;
}