私はiPhoneアプリを開発しています。シンプルな画像がメインビューの背景です。IBを使用して、背景にUIImageViewを設定し、に画像を設定しました。
画像は160dpiのPNG画像です。IBではCRAPのように見えます。シミュレーターで実行するとき、それは大丈夫です、鮮明です。
このような低解像度の画像に正確にコントロールを配置するにはどうすればよいですか?これはバグですか?
助けてくれてありがとう!
私はiPhoneアプリを開発しています。シンプルな画像がメインビューの背景です。IBを使用して、背景にUIImageViewを設定し、に画像を設定しました。
画像は160dpiのPNG画像です。IBではCRAPのように見えます。シミュレーターで実行するとき、それは大丈夫です、鮮明です。
このような低解像度の画像に正確にコントロールを配置するにはどうすればよいですか?これはバグですか?
助けてくれてありがとう!
IB は UI を設計するためのツールではなく、UI を実装するためのツールです。表示の良さよりも、パフォーマンスの良さを重視して設計されています (これは、複雑なデスクトップ UI 設計ではモバイルよりも重要ですが、ツールは両方で同じです)。最良のアドバイスは、おそらく出版業界 (Adobe InDesign などの大量の高解像度グラフィックスを表示するアプリケーションでは一般的な方法です) からヒントを得て、コントロールの正確な測定値 (x、y 座標位置) を追跡することです。および高さ/幅。その後、インスペクタを使用してコントロールを正確に配置できます。
実際、DPI はまったく無関係ではありません。
DPI を 72 に変更すると、画像は IB/Xcode で正常に表示されます。
IB で画像を操作する場合、このようなものは表示されません。あなたのPNGファイルには何か特別なものがあるのではないでしょうか? あなたはそれが 160 dpi だと言っていますが、これはまったく関係ありません。より重要なのは、そのピクセルの寸法と、それらが画面サイズとどのように比較されるかです。
UIImageView が PNG のレンダリングに問題があり、何らかの理由で代わりにプレビュー アイコンを使用している可能性がありますか? 別の画像を試すか、画像のサイズを 480x320、32 ビット カラーに変更してみてください。
私もこれについて疑問に思っています。イメージの DPI がこれを行っているとは思いません。なぜなら、1 台のマシンの IB ですべてが正常に見えるプロジェクトがあり、ラップトップで OP の説明どおりに表示されるからです。
画像のサイズは iPhone の画面とビューのサイズ (320x480) と同じですが、画像は UIImageView のサイズ全体を埋めるのではなく、すべて小さく表示されます。塗りつぶすように拡大縮小すると、320x480 で画像がすべてぼやけてしまいますが、それらが画像の実際の寸法であることを確認できます...画像自体が 320x480 の空のスペースで、小さなバージョンの私のイメージはその中に集中しています...これは非常に奇妙です. 私が言ったように、これは別のマシンのIBで完全にうまく見える同じプロジェクトです(そして、それらがビルドされると、シミュレーターでは両方とも正常に見えます)。これは、友人の MacBook でも発生します。
IBに違いがあるかもしれない設定はありますか?
編集:話が早すぎたと思います-他のマシンに戻って、今度は同じ問題に気付きました。それは実際にはdpiでした。これは、xcode/IB の最近の更新の 1 つで変更されたに違いありません。最初はこの問題を見たことがなく、画像ファイルもまったく同じでした...奇妙なことです。