在我的自定义 tableViewCell 中,我有一个填充整个单元格的 imageView(不是 tableViewCell 的默认 imageView)。它是在 IB 中(和通过代码)使用 contentMode 设置的UIViewContentModeAspectFill
,并且它剪辑到边界。每当我将 imageView 的图像更改为加载的图像时[UIImage imageNamed:...]
,它都会根据需要调整大小并适合 imageView。但是,当使用 加载图像集时[UIImage imageWithData:...]
,图像已设置,但未调整大小。
使用数据本身加载图像的代码在后台线程中运行,如下所示:
- (void)getImage:(NSString *)URL {
NSError *error = nil;
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:URL] options:NSDataReadingMapped error:&error]];
if (!error){
[self.thumbView setImage:image];
[self.thumbView setContentMode:UIViewContentModeScaleAspectFill];
}
}
我尝试在主线程中设置图像layoutSubviews
,但它总是产生相同的结果——它不会调整大小以填充 imageView。我将图像 (JPG) 添加到应用程序包中,并使用 以编程方式设置它[UIImage imageNamed:...]
,它可以工作,但应用程序必须从 URL 获取数据。
我还尝试使用 UIImageView+AFNetworking 类来设置图像异步而不是创建自己的线程,但这也不起作用。
为什么从数据加载图像时不尊重 UIImageView 的 contentMode?任何帮助表示赞赏。JPEG 和 PNG 都不起作用。