我有一个UIImageView设置,它将显示由用户在上一个表视图中选择的内容确定的图像。
这就是我目前正在显示图像的方式:
if ([_TitleLabel.text isEqualToString:@"Dog"]) {
UIImage *image = [UIImage imageNamed:@"Dog.png"];
[imageView setImage:image];
}
后续if语句后面会显示不同动物的不同图像。
这些图像需要有不同的高度,我需要保持它们的比例。所有图像的宽度为320磅。高度从1000分到2500分之间不等。所有图像都位于项目的本地。我希望UIImageView的高度更改为与用户选择的动物对应的图像高度。有什么想法吗?
答案 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;
}