0

誰かがこれらの2つのロード方法の違いを教えてもらえますかUIImageView

iconView.image = [UIImage imageNamed:anIconFileName];

iconView.image = [UIImage imageWithContentsOfFile:anIconFileName];

メソッドを使用するimageNamedと、UIImageViewsをサブビューとしてロードする非決定論的な動作が発生する状況に遭遇しましたUIScrollView。UIImagesはシミュレーターにロードされますが、iMacを使用しているデバイスにはロードされません。しかし、Mac Airに移動したとき、シミュレータとデバイスの両方ですべてが期待どおりに機能しましたか?さらに調査したところ、それが機能したときは非決定的であることがわかりました。5つのUIImageViewを読み込もうとしていたのですが、1つまたは2つになることもありました。ロードしようとした*.pngファイルのサイズに依存しているようです。

メソッドを変更すると、imageWithContentsOfFileすべてが期待どおりに機能しました...確実に。

UIImagesはそれほど大きくはないようでした-それぞれ約100K。どんな考えでも役に立ちます。

4

2 に答える 2

0

まず、画像の名前を確認しましたか。シミュレータでは大文字と小文字が区別されない画像も読み込まれますが、デバイスでは読み込まれません。

imageNamed-このメソッドはファイル名を取ります。 imageWithContentsOfFile-このメソッドは、そのファイル名の完全なファイルパスを取ります。

したがって、上記のコードはダミーコードまたは実際のコードであり、それが実際のコードである場合は、imageNamedファイル名を渡すimageWithContentsOfFile必要があり、ファイルパスを渡す必要があることを確認する必要があります。

これら2つの方法の違いについては、この記事を確認して ください-http://www.jorambarrez.be/blog/2012/04/19/ios-imagenamed-vs-imagewithcontentsoffile/

于 2012-06-23T06:19:06.647 に答える
0

UIScrollView とは関係なく、画像を Xcode にインポートした方法を確認するだけです。オプションを選択してファイルを追加する必要があります。

追加されたフォルダーのグループを作成します。

そうすれば、フォルダーは (青ではなく) 黄色で表示され、imageNamed は正常に機能します。

于 2012-06-23T08:03:11.870 に答える