2012-04-16 13 views
0

私は青色のグラデーション画像を持っています。それは100px(高さ)×1px(幅)です。今では、強調表示された状態の背景イメージとして使用しようとしています。しかし、何とか実行時にオレンジ色に変わります。ここで何が間違っているのでしょうか?ボタンの高さは40ピクセルですので、私は青色のグラデーション画像がUIButtonのオレンジ色のグラデーション画像に正しく伸びていない

UIImage *image = [UIImage imageNamed:@"pressed.png"]; 
UIImage *stretchedImage = [[UIImage imageWithImage:image scaledToSize:frame.size] stretchableImageWithLeftCapWidth:0 topCapHeight:0]; 
[button setBackgroundImage:stretchedImage forState:UIControlStateHighlighted]; 
+0

プレスした.png画像も投稿できますか? –

+0

ご迷惑をおかけして申し訳ございませんが、画像を保護することはできません。 – tom

+0

共有できる別の*画像に効果を再現できますか?何も問題がなければ、何ができるか分かりません。 – ChrisF

答えて

1

それを設定する前に、サイズ変更をしていおおまか可能性の高い順にいくつかの可能な説明、あります:

1)あなたのscaledToSizeカテゴリコードにはバグがありますそこでは画像のバイトのRGB順を逆にして、青からオレンジに変えます。イメージを拡大縮小して、正しい色であるかどうか確認してください。とにかく実際には拡大縮小する必要はありませんが、ボタンの背景画像はすでに実行時に収まるように拡大されています。

2)あなたのプロジェクトには2つのpressed.png画像があります。気づいていないかもしれませんが、コンパイラはビルド時にすべての画像を同じフォルダにダンプするので、青いpressed.pngはオレンジプレスド.pngでオーバーライドされています。ディスク上のプロジェクトを検索して、そうであるかどうかを確認します。

3)以前はpressed.pngというオレンジ色の画像がありました。アプリをビルドするときには、キャッシュの問題が原因で古い画像が使用されています。クリーンビルドを試し、シミュレータをリセットして、デバイスからアプリを削除してください。

4)画像のオレンジ色の画像はc[email protected]です。あなたがデバイス上で実行すると、それは網膜版を使用しているので、それは異なって見えます。

5)あなたのPNGが何とか壊れています - それを削除し、ゼロから再作成してください。私は1px幅の画像しかないので、その場合はそれを広げてみてください。

関連する問題