0

そこで、iOS アプリにカスタム ボタンを実装して、デフォルトの角丸長方形ボタンを置き換えようとしています。コードスニペットを次に示します。

UIImage *normalImage  = [[UIImage imageNamed:@"Images/whitebutton.png"] stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0];
UIImage *pressedImage = [[UIImage imageNamed:@"Images/bluebutton.png"]  stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0];

[self.theButton setBackgroundImage:normalImage  forState:UIControlStateNormal];
[self.theButton setBackgroundImage:pressedImage forState:UIControlStateHighlighted];

シミュレーターで実行すると、すべて正常に動作し、カスタム ボタンが表示されます。ただし、実際のデバイスで実行すると、ボタンはカスタマイズされていないデフォルトのボタンとして表示されます。誰かが私がどこで間違っているのか分かりましたか?

4

4 に答える 4

1

iOS ファイル システムは、sinulator とは異なり、大文字と小文字を区別します。その「画像」ディレクトリをチェックすることから始めます。

(私が間違ったツリーを鳴らしているかどうか簡単にテストしてください:+imageNamed:呼び出しは nil を返しますか?)

于 2012-07-08T18:27:53.960 に答える
0

リソースはアプリ バンドル内で平坦化されます。また、iOS のファイル システムでは大文字と小文字が区別されますが、Mac OS X のファイル システムでは大文字と小文字が区別されます。そのため、画像の実際のファイル名の大文字と小文字が正しいことを確認してください。Images/そうである場合は、プレフィックスを削除するだけで機能します。

[UIImage imageNamed:@"bluebutton"];

また、画像が png 形式の場合は、ファイル拡張子を で指定する必要はありませんimageNamed:

于 2012-07-08T18:27:15.317 に答える
0

使用する

[UIImage imageNamed:@"whitebutton.png"]

[UIImage imageNamed:@"bluebutton.png"]

Xcode で視覚的に整理する方法に関係なく、すべてがバンドル内でフラット化されます

于 2012-07-08T18:27:36.360 に答える
0

プロジェクトに whitebutton.png と bluebutton.png を追加する必要があります。そして、呼び出しimageNamed:@"filename"ませんimageNamed:@"file path"。また、シミュレータ上で実行する場合、大文字と小文字の区別に問題はありません。デバイスでは、大文字と小文字が区別されるため、正しいファイル名を入力する必要があります。

お役に立てれば。

乾杯、

ジョージ

于 2012-07-08T18:25:55.657 に答える