2012-04-25 107 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