2013-09-21 18 views
6

私は最近、iOS 7にアップグレードしたiOS 6用にビルドしたアプリケーションを持っています。UIScrollViewにはいくつかのカスタムUIViewsがあります。 UIViewsの中には、私はそれぞれ一つのUIImageViewを持っています。なんらかの理由で、iOS 6にUIImageView.imageを設定しても問題なく表示されますが、iOS 7では表示されません。ここでは、コードです:iOS 7のUIImageViewが表示されない

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ではありません知っています。私は何が間違っていますか?

EDIT:

私はUIImageRenderingModeを試してみました:

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

imageView.image = imageForView; 

はまだ動作しませんでした。しかし、Max_Power89 @言った:それはAppleデベロッパフォーラムに書かれているよう

:imageWithDataバグに レポート

を、これはバグでなければなりません。私は彼らが問題を早期に解決することを望む。

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

画像は、アプリケーションのディレクトリに保存されていたので、画像がnilでないことを、私は確かに知っています。

+0

ログの画像ビューのサイズ – Wain

+0

@Wain - フレームのNSLogは '0,0,320,120'でした。そこに問題はありません –

+0

私たちにはこれに対する解決策がありますか?私は同じ問題を経験しています。これは 'UITableView'にもなります:( – dzep

答えて

1

iOS 7の自動レイアウト制約の問題/バグです。UIViewの制約を削除しても問題ありません。必要に応じてフレームをプログラムで設定することができます。

+0

この回答は私のために働いた。 – chongzixin

0

iOS 7では、デフォルトで画像を読み込むとアルファシャネルしか読み込まれず、細部の色合いで色あいします。あなたのイメージは、それがバックグラウンドと同じ色であることを示しています。

- (UIImage *)imageWithRenderingMode:(UIImageRenderingMode)renderingMode 

設定し、それをする:それはAppleデベロッパフォーラムに書かれているよう

UIImageRenderingModeAlwaysOriginal 
+0

それで、どのように修正すればい​​いですか? - @Kyle Fang –

+0

それが動作するかどうか教えてください。@ Cody –

+0

うまくいかない。しかし、素晴らしい提案です。 –

0

imageWithData bug report

これはバグでなければなりません。私は彼らが問題を早期に解決することを望む。

+0

うーん、それはそれかもしれない。しかし、コードはnilを返さないようです。 –

0

多分、これは誰にとっても役立つでしょう:私は同じ問題を抱えていました。最後に私は、UIScrollViewがいくつかのバックグラウンドビューのレイヤーを隠していることを理解しました。 UIScrollView-backgroundは.xib-Fileの "グループテーブルビューの背景色"に設定されていました。これを「クリアカラー」に変更した場合、動作は正常に戻ります(iOS 6のように)。 「デフォルトの動作」がiOS6から7に変更されたようです。誰かがこれを確認できるかもしれません。

関連する問題