Ios UIImageView设置为imageWithData忽略内容模式

Ios UIImageView设置为imageWithData忽略内容模式,ios,objective-c,uiimageview,afnetworking,contentmode,Ios,Objective C,Uiimageview,Afnetworking,Contentmode,在自定义tableViewCell中,我有一个imageView(不是tableViewCell的默认imageView),它填充整个单元格。它是在IB中使用contentModeUIViewContentModeAspectFill设置的(并按代码设置),并剪裁到边界。每当我将imageView的图像更改为加载了[UIImage ImageName:…]的图像时,它都会根据希望和预期调整imageView的大小和大小。但是,当图像集加载有[UIImage imageWithData:…]时,图

在自定义tableViewCell中,我有一个imageView(不是tableViewCell的默认imageView),它填充整个单元格。它是在IB中使用contentMode
UIViewContentModeAspectFill
设置的(并按代码设置),并剪裁到边界。每当我将imageView的图像更改为加载了
[UIImage ImageName:…]
的图像时,它都会根据希望和预期调整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
中设置图像,但它总是产生相同的结果–它不会调整大小以填充图像视图。我将图像(JPG)添加到应用程序包中,并使用
[UIImage ImageName:…]
以编程方式对其进行设置,这是可行的,但应用程序必须从URL获取数据

我还尝试使用UIImageView+AFNetworking类来设置映像异步,而不是创建自己的线程,但这也不起作用


从数据加载时,为什么图像不符合UIImageView的contentMode?感谢您的帮助。JPEG和PNG都不起作用。

如果其他人偶然发现了相同的问题,下面是我所做的修复

我在IB中创建了一个新的imageView,删除了旧的,只更改了contentMode值和clipsToBounds值。在tableViewCell.m init代码中,我设置了占位符图像,瞧,一切都像一个符咒


虽然我真的不知道是什么原因造成的,但这可能是Clears Graphics Content复选标记设置的错误(oops)。

@OliverAtkinson这是否更好,真的?这个代码段工作得很好,只是图像没有按预期的那样调整大小。它处理图像缓存,因此您不必担心用户加载图像的速度会变慢。它还将遵守UIImageView上已设置的任何contentMode设置。AFNetworking可能是最好的。那我就试试吧!谢谢:)奇怪的是,你使用的是转换方法。这些方法旨在将一个视图替换为另一个视图。我会考虑在没有动画的情况下测试图像的变化。然后尝试使用
-[UIView animateWithDuration:animations:
方法为图像更改设置动画。查看
ui查看
文档了解更多信息。如前所述,我在没有转换的情况下尝试过。过渡方法也是唯一可以用于此目的的动画!:)