2

UITableViewCell の backgroundView に画像 (.png) を読み込もうとしています。ただし、画像は表示されません。NULL を返すイメージのログ出力に基づいて、イメージの初期化の問題のようです。

私が試した/チェックしたこと:

  1. ファイル名のスペルと大文字が正しく入力されています。

  2. ファイルは Xcode に適切に追加され、[バンドル リソースのコピー] に表示されます

  3. ファイル インスペクターで、ファイルの [ターゲット メンバーシップ] ボックスがオンになっている

  4. ファイルを更新したので、念のためシミュレーターからアプリを削除し、DerivedData フォルダーの内容も削除しました。

  5. XCodeを再起動しました。

  6. 次の方法で画像をロードしようとしました:

    [UIImage imageNamed:@"cell-bg.png"] 
    

    としても

    [UIImage imageNamed:@"cell-bg"]
    
  7. 私もバンドルからロードしようとしました:

    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *imagePath = [mainBundle pathForResource:@"cell-bg" ofType:@"png"];
    NSLog(@"path: %@", imagePath);
    UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
    

この最後のものについては、NSLog は出力にフル パスを生成しますが、別の NSLog を実行するimageNULL.

Apple の UIImage Class Reference には、-imageWithContentsOfFile:メソッドの下で次のように記載されています。

戻り値 指定されたファイルの新しいイメージ オブジェクト、または指定されたファイルからメソッドがイメージを初期化できなかった場合は nil。

それで、ファイルに何か問題があるのでしょうか?問題を診断して修正するにはどうすればよいですか?

4

0 に答える 0