我正在使用第三方库 HJCacheClasses 来异步加载图像。这是相同的代码。这非常简单:
NSMutableString *url = @"my url";
HJManagedImageV *asyncImageView = [[HJManagedImageV alloc] initWithFrame:frame];
[asyncImageView setBackgroundColor:[UIColor grayColor]];
[asyncImageView showLoadingWheel];
[asyncImageView setContentMode:UIViewContentModeScaleAspectFill];
[asyncImageView.imageView setContentMode:UIViewContentModeScaleAspectFill];
asyncImageView.url = [NSURL URLWithString:url];
[self.imageManager manage:asyncImageView];
[the_pScrollView addSubview:asyncImageView];
除了图像居中并且根据视图的大小(全屏大小)不会拉伸/拟合之外,一切正常。我知道图像很小但我需要使其适合视图以填充视图。但是setContentMode都没有工作。
答案 0 :(得分:4)
如果您查看HJManagedImageV类的源代码,您会注意到作者将HJManagedImageV实例的imageView硬编码为始终适合方面。因此,默认情况下,您永远不会使方面填充内容模式有效。
有一种简单的方法可以实现这一点,在您设置托管图像视图的url属性后,还可以向自己的类添加回调,如下所示:
myImageView.callbackOnSetImage = (id)self;
在回调函数中为imageView设置所需的contentMode,就像这样。这是经过测试并适合我。祝你好运
-(void) managedImageSet:(HJManagedImageV*)mi
{
mi.imageView.contentMode = UIViewContentModeScaleAspectFill;
}
答案 1 :(得分:0)
我自己找到了答案,我感觉更简单,更直接。正如我所提到的,在HJManagedImageV类的源代码中,作者将HJManagedImageV实例的imageView硬编码为始终适合方面。所以我只是评论了代码......对于那些喜欢这样做的人来说,请按照以下步骤进行操作
搜索名为
的方法-(void) setImage:(UIImage*)theImage
评论该行
imageView.contentMode = ...
或为imageView设置所需的内容模式。注意:这将使用此类为所有imageView设置内容模式。所以我更愿意选择第一个选项。
在使用此类的代码中,设置HJManagedImageV的内容模式。