2013-09-21 68 views
6

我有一個應用程序,我正在爲iOS 6建立,我最近升級到iOS 7.我有一個UIScrollView與一些自定義UIViews。在那些UIViews之內,我有一個單獨的UIImageView。出於某種原因,當我在iOS 6中設置UIImageView.image時,它顯示正常,但iOS 7不會顯示它們。下面的代碼:UIImageView與iOS 7沒有顯示

int i = 0; 

     for (UIImageView *imageView in myImageViewsOutletCollection) 
     { 
      imageView.image = nil; 
      if (imagesArray.count > i) 
       imageView.image = [UIImage imageWithData:[imagesArray objectAtIndex:i]]; 

      if (imageView.image == nil) 
       NSLog(@"signature image with index: %i is nil", i); 
        else 
          NSLog(@"It Worked") 

      i++; 
     } 

我的應用程序日誌:@"It Worked",所以我知道UIImageView.imagenil。我可能做錯了什麼?

編輯:

我試過UIImageRenderingMode:

UIImage *imageForView = [UIImage imageWithData:[imagesArray objectAtIndex:i]]; 
imageForView = [imageForView imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

imageView.image = imageForView; 

仍然沒有奏效。然而,@ Max_Power89說:

,因爲它是寫在蘋果開發者論壇:imageWithData錯誤 報告

這一定是一個錯誤。我希望他們儘早解決問題。

編輯2:

我還添加了這一點:

NSData *pngData = UIImagePNGRepresentation(imageView.image); 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
NSString *docs = [paths objectAtIndex:0]; 

NSError *writeError = nil; 
[pngData writeToFile:[docs stringByAppendingFormat:@"/image.png"] options:NSDataWritingAtomic error:&writeError]; 
if(writeError!=nil) 
{ 
    NSLog(@"%@: Error saving image: %@", [self class], [writeError localizedDescription]); 
} 

的圖像保存在應用程序的目錄,所以我肯定知道圖像不爲零。

+0

記錄圖像視圖的大小 – Wain

+0

@Wain - 框架的NSLog是'0,0,320,120'沒有問題 –

+0

我們有一個工作解決方案嗎?我遇到了同樣的問題。這也適用於'UITableView' :( – dzep

回答

1

這是iOS 7中自動佈局約束的一個問題/錯誤。如果您刪除了UIView上的約束條件,則不會出現問題。您可以根據需要以編程方式設置框架。

+0

這個答案適合我。 – chongzixin

0

在iOS 7中,默認情況下加載圖像只加載它的alpha香奈兒,並用細節色調來着色。您的圖像正在顯示,只是它與背景顏色相同。

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode 

將其設置爲:

UIImageRenderingModeAlwaysOriginal 
+0

那麼,我該如何解決這個問題? - @凱爾方 –

+0

讓我知道它是否有效@ Cody –

+0

沒有工作。好的建議,但。 –

0

,因爲它是在蘋果開發者論壇上寫道:imageWithData bug report

這一定是一個錯誤。我希望他們儘早解決問題。

+0

嗯,這可能是。但是,代碼似乎沒有返回零。 –

0

也許這對任何人都有幫助:我遇到了同樣的問題 - 至少看起來像這樣。最後我發現,一個UIScrollView隱藏了一些背景視圖圖層。在.xib文件中,UIScrollView背景設置爲「組表查看背景顏色」。如果我將其更改爲「清除顏色」,則行爲將恢復正常(如iOS 6中)。看起來,這個元素的「默認行爲」已經從iOS6更改爲7.也許有人能夠確認這一點。