2011-06-28 10 views
2

以前にサーバからプルダウンされた画像によってセルの画像ビューが表示される表があります。したがって:サーバからの網膜画像が表のセルに正しく表示されない

[[cell imageView] setImage:[[[UIImage alloc] initWithContentsOfFile:filePath] autorelease]]; 

"filePath"はこれらの画像の場所です。私が巧みになり、私のサーバーに網膜ディスプレイの画像を追加することにするまで、美しく働いていました。これらの画像(2倍の大きさ、明らかに)は表示されていますが、縮小されています。私は[email protected]というラベルをつけていましたが、iPhoneが何をするべきかを知っていればいいと思っていましたが、明らかにそれはこの文脈ではうまくいきません。

私はディスカッションを見て、それを画面のスケールに合わせるように、セルのimageViewのcontentsScaleで何かする必要があると推測していますが、これを行う方法がわかりません。どんな助けもありがたい。

+0

私はそのアスペクト比に関連していると感じます。そうでなければ、他のすべては問題ないようです。 –

答えて

0

サーバーから自動的に網膜画像をダウンロードすることはできません。

あなたは正しい画像を取得するために

if (iphone == 4) [email protected] 
else image=img.png 

のような制御を必要としています。

+0

このスレッドをチェック:http://stackoverflow.com/questions/3294100/how-to-differentiate-between-iphone4-and-iphone-3どのようにデバイスが網膜の画面を持っているかを確認する方法を参照してください。 – rckoenes

+0

こんにちはPaska。ありがとう、しかし、私はあなたが私を誤解したと思います。私は何かを自動化しようとはしていない。私はサーバー上にそれぞれ2つの画像を持っており、私はこれらの両方にアクセスしてアプリケーションのドキュメントディレクトリに保存するコードを別の場所に持っています。これはすべて正常に動作しており、画像は表のセルに読み込まれますが、@ 2x画像の場合、画像は縮小して表示されます。 –

+0

ありがとう@rckoenes。はい、私はそのスレッドを読んでいます。しかしこれも私の問題ではありません。電話機は正しい画像を表示しています(網膜の画面には大きな画像、それ以外の場合は小さい画像)。しかし、それが大きい画像の場合、画像は縮小され、セルのimageViewのサイズの半分しか満たされません。 –

0

画像の倍率を正しく設定する必要があります。あなたはその 名@ 2xの修飾子が含まれ、 スケールが2.0に設定されているファイルから画像をロードする場合UIImage

にスケールのプロパティを確認してください。ファイル名 に修飾子が含まれておらず、PNG形式またはJPEG形式の で、対応するDPI値が の場合、対応する の倍率が計算され、 がこのプロパティに反映されます。 Core グラフィックスイメージからイメージを初期化するときに、明示的な倍率を と指定することもできます。他のすべての画像は、 とし、1.0倍の倍率とします。

だから、上記のように自分の画像を読み、それからCGImageを取得し、+ (UIImage *)imageWithCGImage:(CGImageRef)imageRef scale:(CGFloat)scale orientation:(UIImageOrientation)orientationを使用して新しいUIImageを作成することができます。

網膜画像のDPIを確認して、グラフィックプログラムで144dpiにすることができます。 scaleプロパティのドキュメントによると、これもうまくいくかもしれません。

関連する問題