2012-04-25 101 views
2

我正在使用第三方库,HJCacheClasses,用于异步加载图像。 以下是相同的代码。其非常直截了当setContentMode:对于HJManagedImageV不适用于iOS

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

我发现了我自己的答案,我觉得更简单和明智。正如我所提到的,在HJManagedImageV类的源代码中,作者对HJManagedImageV实例的imageView进行了硬编码,使其始终处于纵横比。所以,我只是评论说,代码...对于谁喜欢做同样遵循以下步骤

  1. 转到HJManagedImageV.m文件
  2. 搜索名为

    方法的人 - (空) setImage:(UIImage的*)theImage

  3. 注释的行 imageView.contentMode = ... 或者设置你想要的ImageView的内容模式。 注意:这将为使用此类的所有imageView设置内容模式。所以我宁愿选择第一个选项。

  4. 在您使用此类的代码中,为HJManagedImageV设置内容模式。

完蛋了...享受

+1

拉吉,每当你用更新的版本更新库时,你必须查看源代码并以指定的方式进行调整。考虑一下 – 2012-05-24 13:34:16

4

如果你看看HJManagedImageV类的源代码,你会发现笔者硬编码的HJManagedImageV实例的ImageView的永远是方面的配合。所以默认情况下,你永远不会得到方面填充内容模式工作。

有一个简单的方法,虽然实现这一目标,之后你设置管理的图像视图的url属性,还回调添加到您自己的类,像这样:

myImageView.callbackOnSetImage = (id)self; 

而在回调函数像这样为imageView设置所需的contentMode。这已经过测试,适用于我。祝你好运

-(void) managedImageSet:(HJManagedImageV*)mi 
{ 
    mi.imageView.contentMode = UIViewContentModeScaleAspectFill; 
} 
+0

感谢您的反馈...我想你的解决方案,它的作品...但下面是我认为是更简单... – Nik 2012-05-22 08:06:32

相关问题