我有一个UIImageView,当我使用IB在该视图中设置图像时,当我运行应用程序(40x40)时,图像的大小正确。当我使用下面的代码以编程方式更改图像时,新图像大约为400x400。如果它在IB中设置,则使用我知道可以正常工作的相同图像。在将图像添加到UIImageView之前,是否必须缩放图像?我认为自动布局的约束会自动为我做这件事。
UIImage *messageTypeImage = [UIImage imageNamed:message.imageName];
[messageCell.imageView setImage:messageTypeImage];
[messageCell.contentView layoutIfNeeded];
UIImageView的内容模式设置为" Scale To Fill"我在调用setImage之前和之后尝试添加下面的代码:
[messageCell.imageView setContentMode:UIViewContentModeScaleAspectFill];
[messageCell.imageView setClipsToBounds:YES];
以下是如何为图像视图设置约束:
答案 0 :(得分:0)
您使用的是iOS 8 SDK吗?如果是这样,请尝试覆盖您的单元子类中的layoutSubviews并添加:
self.contentView.frame = self.bounds;
self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
集合视图/表视图单元格约束/掩码的contentViews存在一些问题。
答案 1 :(得分:0)
哇。终于找到了答案here。事实证明,原型单元格中有一个默认的imageView插座。我不知不觉地使用了那个插座,而不是我认为我正在使用的UIImageView。