在我的自定义tableViewCell中,我有一个填充整个单元格的imageView (不是tableViewCell的默认imageView)。它是用contentMode UIViewContentModeAspectFill在IB (并通过代码)中设置的,并且剪辑到边界。每当我将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都不起作用。
发布于 2013-07-28 09:47:36
如果其他人在同样的问题上绊倒了,下面是我为解决这个问题所做的努力。
我在IB中创建了一个新的imageView,删除了旧的,只更改了contentMode-value和clipsToBounds value。在tableViewCell.m init代码中,我设置了占位符图像,瞧--一切都像魅力一样工作。
虽然我不知道是什么原因造成的,但可能是Clears内容检查点设置的错误(oops)。
https://stackoverflow.com/questions/17898388
复制相似问题