【发布时间】:2015-01-24 21:36:50
【问题描述】:
我有一个 UIImageView,当我使用 IB 在该视图中设置图像时,当我运行应用程序 (40x40) 时,图像的大小是正确的。当我使用下面的代码以编程方式更改图像时,新图像是 400x400 左右。这是使用相同的图像,如果它在 IB 中设置,我知道它可以正常工作。在将图像添加到 UIImageView 之前是否必须缩放图像?我假设自动布局的约束会自动为我做这件事。
UIImage *messageTypeImage = [UIImage imageNamed:message.imageName];
[messageCell.imageView setImage:messageTypeImage];
[messageCell.contentView layoutIfNeeded];
UIImageView 的内容模式设置为“缩放填充”,我尝试在调用 setImage 之前和之后添加以下代码:
[messageCell.imageView setContentMode:UIViewContentModeScaleAspectFill];
[messageCell.imageView setClipsToBounds:YES];
以下是为图像视图设置约束的方式:
【问题讨论】:
-
你可以试试
[messageCell layoutIfNeeded];。 -
Jessamaphone,感谢您的建议,但我已经在致电 [messageCell.contentView layoutIfNeeded];我已经更新了问题以反映这一点。
-
你查看Mode(即contentMode)的值是多少?按比例填充?
-
你在IB的imageView上设置了哪些约束?你有宽度和高度限制吗?还是对 imageView 的所有四个方面都有限制?
-
那么,您的图像在屏幕上显示为大于 40x40?
标签: objective-c uiimageview uiimage interface-builder autolayout