2013-09-21 21 views
6

Yakın zamanda iOS 7'ye yükseltdiğim iOS 6 için geliştirdiğim bir uygulama var. Birkaç Özelile bir Özel UIViews. Bu UIViews içinde, her birinde tek bir UIImageView var. Bazı nedenlerden dolayı, iOS 6'da UIImageView.image'u ayarladığımda iyi görünüyor, ancak iOS 7 bunları göstermeyecek. İşte kod:IOS 7 ile UIImageView görünmüyor

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++; 
     } 

Uygulamam giriş yapıyorken: @"It Worked", bu yüzden UIImageView.imagenil olmadığını biliyorum. Ne yanlış yapabilirdim?

DÜZENLEME:

Ben UIImageRenderingMode çalıştı:
UIImage *imageForView = [UIImage imageWithData:[imagesArray objectAtIndex:i]]; 
imageForView = [imageForView imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

imageView.image = imageForView; 

Yine çalışmadı. Ancak, Max_Power89 @ söyledi: elma geliştirici forumunda yazıldığı gibi

: imageWithData gýcýk raporu

bu bir hata olmalı. Umarım sorunu erken çözerler.

DÜZENLEME 2: Ben de bu eklendi

:

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]); 
} 

görüntü uygulamanın dizine kaydedilir, böylece görüntü nil olmadığını Kesin bildiğim.

+0

Resim görüntülerinin boyutlarını günlüğe kaydetme – Wain

+0

@Wain - Çerçevenin NSLog'u "0,0,320,120" idi Sorun yok –

+0

Bunun için bir çalışma çözümümüz var mı? Aynı sorunu yaşıyorum. Bu aynı zamanda 'UITableView' için de geçerlidir :( – dzep

cevap

1

iOS 7'de Otomatik Düzen kısıtlamalarıyla ilgili bir sorun/hata. UIView'daki kısıtlamaları kaldırırsanız, sorun olmayacaktır. Gerekirse, çerçeveleri programatik olarak ayarlayabilirsiniz.

+0

Bu cevap benim için çalıştı. – chongzixin

0

iOS 7'de, bir görüntüyü varsayılan olarak yüklemek yalnızca alfa Chanel'i yükleyin ve ayrıntılı renk tonuyla renklendirin. Görüntünüz, sadece arka planla aynı renkte görünüyor.

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode 

Seti bunun için: elma geliştirici forumunda yazıldığı gibi

UIImageRenderingModeAlwaysOriginal 
+0

Peki, bunu nasıl düzeltirim? - @Kyle Fang –

+0

Çalışırsa bana haber ver. @ Cody –

+0

Çalışmadı. Yine de büyük bir öneri. –

0

: imageWithData bug report

bu bir hata olmalı. Umarım sorunu erken çözerler.

+0

Hmm, o olabilir. Ancak, kod sıfır geri dönüyor gibi görünmüyor. –

0

Belki bu herkes için yararlı olacaktır: Aynı sorunu yaşıyordum - en azından böyle görünüyordu. Sonunda, bir UIScrollView'un arka plan görünümü katmanlarını gizlediğini anladım. UIScrollView-background .xib-Dosyasında "Grup Tablosu Arka Plan Rengi Görünümü" olarak ayarlandı. Bunu "rengi temizle" olarak değiştirdim, davranış normale döndü (iOS 6'daki gibi). Görünüşe göre, "varsayılan davranış", bu öğe için iOS6'dan 7'ye değişti. Belki biri bunu doğrulayabilir.