2012-05-28 9 views
5

私にはわかっていないという問題があります。私は、フロントとバックカメラから1つの写真を撮って、それらを一緒にマージするアプリを持っている。網膜(高品質)の画像をプログラム的にロードする(ボタン上)

私は私のUIButtonsは最初から網膜像としてロードされることはありませんどこに問題があるしかし、アプリの名前はGroupCam

です。インタフェースビルダーでそれらを@ 2xとして設定すると、高品質で表示されますが、プログラマチックにリロードすると、代わりに低バージョンが表示されます。

これは、写真を撮って画面を変えるとボタンの画像が変わるのですが、ユーザーが戻るボタンを押すと、カメラのアイコンがひどく見えます(低品質のバージョンがロードされているためです) 。

次の画像を確認してください:

まず画面:私はカメラのフラッシュの値と「ロード」プログラム的に対応する画像を確認していますので、だけ右上のボタンが歪んで表示されます。

First Screen

2番目の画面:ユーザーが別の画面に移動し、最初の1に戻ってきましたが、すべてのボタンがリロードされた、彼らは今、すべてが歪んで見えます。

Second Screen

誰もがこの出来事は、私はそれを本当に感謝している理由の任意のアイデアを持っている場合!

ありがとうございました。

編集:

イメージをロードする方法です。

これを行うとインターネットのどこかで自動的に画像の最適なバージョンが読み込まれます。

また、私はこれを試みたが、結果は同じである:あなたのアプリは、フロントカメラから写真を撮るとバックカメラからの1と一緒にそれらをマージしている場合

[self.takeButton setImage:[UIImage imageNamed:@"takePhoto.png"] forState:UIControlStateNormal]; 
+1

アプリで正常画像と網膜画像を使用して素晴らしい結果が得られました。だから私は、これらの画像の通常の解像度を選択し、それらをプロジェクトに含めないことをお勧めします(3番目の右端のペインを介して、チェックボックスを選択解除してください)。今あなたのアプリは、網膜の画像を持っています。さて、物事が悪くなると、あなたのアプリの中の何かが台無しになりました。 [UIImage imageNamed:foo.png]に問題があります。そのイメージを変更すると、そのイメージの後続のすべてのユーザーが変更されたイメージを取得します。 UIImageを読み返してくださいimageNamed: –

+2

質問を読んでみましたが、私はこの文を見ました:「インターフェースビルダーで@ 2x」と設定した場合。したがって、IBでは、あなたの名前を「[email protected]」と入力しています。ですから、あなたの問題は "@ 2x"という形式でしかないと思います。あなたはそれらの画像の名前を正しく指定していることを確信していますか? "[email protected]"、NOT&2x.pngなどです.iOSがハイレゾファイルを見ないように思われます。それがそれを説明する唯一の理由です。だから、IBの "@ 2x"を削除してみて、何が起こるか見てみましょう。私はあなたがいつもすべての低いrezを得ると確信しています。 –

+0

はいそれは正しくフォーマットされ、命名されます。画像はHDで完全に正常に読み込まれますが、唯一の問題はプログラムで読み込むときです。 iOSは低解像度のものをロードすることを決めます。 – Pochi

答えて

3

、そのデバイスは、フロントが必要です直面するカメラ。正面を向いているカメラを持っているすべてのiOSデバイスも網膜ディスプレイを持っています(iPad 2用に開発していない限り、それは別の話です)ので、通常の画像を持つ必要はありません。網膜画像。通常の画像がない場合、この問題はまったく起こりません。バックアップコピーを作成し、すべての通常のイメージを削除してから、試してください。あなたがUIImage imageNamed:@ "ImageName"を使用しているので、あなたが言ったように、自動的に画像を選択する必要があります!がんばろう!

+0

私はちょうどこれが起こっている理由を見つけることを望んでいましたが、これは解決策であるようです。 – Pochi

+0

@LuisOscar申し訳ありませんが、私の最高の推測でした:(bugreport.apple.comでバグを報告してみてください。 – sridvijay

4

まず、低解像度版が実際に表示されていることを確認する価値があります。私は最近同様の前提に跳ね上がり、画像の低解像度版を何か別のものに交換し、高解像度版が実際にはまだ表示されていたが歪んでいることを確認した。

私の実際の問題は、私はボタンの祖先のいずれかがこのセットを持っている場合、それはおそらくあなたの問題である可能性が

<uibutton_superview>.layer.shouldRasterize = YES;

を設定していました。

3

イメージのファイル名の大文字小文字は、シミュレータ上では問題ありませんが、デバイス上では同じです。

すべての一貫性のあるケースを使用してください。 Image.pngと[email protected]は認識され、シミュレータでは動作しますが、デバイスでは動作しません。 image.pngと[email protected]を使用してください。また、大文字と小文字が一致する限り.jpgを使用することもできます。

関連する問題