UITableViewCell の backgroundView に画像 (.png) を読み込もうとしています。ただし、画像は表示されません。NULL を返すイメージのログ出力に基づいて、イメージの初期化の問題のようです。
私が試した/チェックしたこと:
ファイル名のスペルと大文字が正しく入力されています。
ファイルは Xcode に適切に追加され、[バンドル リソースのコピー] に表示されます
ファイル インスペクターで、ファイルの [ターゲット メンバーシップ] ボックスがオンになっている
ファイルを更新したので、念のためシミュレーターからアプリを削除し、DerivedData フォルダーの内容も削除しました。
XCodeを再起動しました。
次の方法で画像をロードしようとしました:
[UIImage imageNamed:@"cell-bg.png"]
としても
[UIImage imageNamed:@"cell-bg"]
私もバンドルからロードしようとしました:
NSBundle *mainBundle = [NSBundle mainBundle]; NSString *imagePath = [mainBundle pathForResource:@"cell-bg" ofType:@"png"]; NSLog(@"path: %@", imagePath); UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
この最後のものについては、NSLog は出力にフル パスを生成しますが、別の NSLog を実行するimage
とNULL
.
Apple の UIImage Class Reference には、-imageWithContentsOfFile:
メソッドの下で次のように記載されています。
戻り値 指定されたファイルの新しいイメージ オブジェクト、または指定されたファイルからメソッドがイメージを初期化できなかった場合は nil。
それで、ファイルに何か問題があるのでしょうか?問題を診断して修正するにはどうすればよいですか?