1

インターフェイス ビルダーでボタンの背景を設定しましたが、それが表示されなかったので、プログラムで設定しました。すべて (1 つのボタンを除く... なぜ?) はシミュレーターに表示されますが、デバイスには表示されません。

私はこの出力を得る:

Could not load the "gray_button.png" image referenced from a nib in the bundle with identifier "com.example.ios"

これはコードです:

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self.getMyTripButton setBackgroundImage:[UIImage imageWithContentsOfFile:
                                          [[self getFullPathname] stringByAppendingPathComponent:@"images/gray_button.png"]]
                                forState:UIControlStateNormal];
    [self.popupButton setBackgroundImage:[UIImage imageWithContentsOfFile:
                                      [[self getFullPathname] stringByAppendingPathComponent:@"images/gray_button.png"]]
                            forState:UIControlStateNormal];


    [self.viewOurPackages reloadData];
}

に置き換えimageWithContentsOfFileてみましたがimageNamed、どちらも同じ結果が得られます。

[Project] > [Targets] > [Build Phases] > [Copy Bundle Resources] に images ディレクトリを追加しましたが、ここからすべてがうまくいかず、その理由がわかりません。おそらくそれはディレクトリだからですか?

大文字と小文字の区別の問題ではないことを二重および三重に確認したことを指摘したいと思います。

更新: 1 つのボタンが表示されない問題を解決しました。本当の問題は、画像が iOS6 では表示され、iOS5 では表示されないことです。

4

3 に答える 3

2

私のために働いたのは、次の3つのことの1つ(または組み合わせ)でした:

  1. 画像ファイルが正しくフォーマットされていることを確認してください。時々pngファイルは少し強制する必要があります。(これは特に私の問題だったと思います)
  2. InterfaceBuilderまたはでボタンのタイプがCustomであることを確認してくださいUIButtonTypeCustom
  3. Interface Builderで画像を設定してもまだ表示されない場合は、を使用して[button setBackgroundImage:image forState:UIControlStateNormal](または[button setImage:image forState:UIControlStateNormal]必要な画像に応じて)コードで明示的に画像を設定してください。
于 2012-12-05T20:23:22.233 に答える
1

コピー バンドルにフォルダーを追加する場合は、ファイルを として参照する代わりに、gray_button.pngコードまたは xib から参照する必要があります。次のように、ディレクトリも名前に含める必要があります。directory/gray_button.png

于 2012-11-07T21:25:18.927 に答える
0

ステフ、

@synthesizeのボタンに使用した場合は.h file、ゲッターとセッターが自動的に作成されます。したがって、(これは大当たりで、ただの考えです) 名前を付けると、getMyTripButtonXcode が何らかの形で混乱する可能性があります。変数の名前を変更してみてください。

画像がロードされない限り...ボタンの1つで他のボタンではありません...よくある質問? gray_button.png呼ばれているのはここだけですか?(たとえば、そのボタンを別の場所で変更して、その画像を再度使用するように指示することはありません)。それを使用しているペン先と同じディレクトリに配置しようとしましたか? getMyTripButtonペン先からコードまできちんと結ばれていますか?

今のところ最後に思いつくこと: あなたは言った

インターフェイス ビルダーでボタンの背景を設定しましたが、それが表示されなかったので、プログラムで設定しました。すべて (1 つのボタンを除く... なぜ?) はシミュレーターに表示されますが、デバイスには表示されません。

popupButtonの背景画像も nib/interface builder に設定されていますか? すでにそこに設定されていて、ここで再度設定している場合は、実際にはコードにまったく設定されておらず、インターフェースビルダーにあるものを使用しているだけで、getMyTripButton表示/表示されない理由を説明している可能性があります背景画像。

問題を引き起こしている可能性のある他の何かを考えたら、この投稿を編集します。頑張ってください。

于 2012-11-08T00:08:52.883 に答える