8

先週、Lion を Mountain Lion にアップデートしましたが、それ以来、iOS シミュレーターでこの非常に奇妙なバグが発生しました。1枚目が通常のシミュレーター、2枚目が「Retina」シミュレーターです。これを修正する方法を知っている人はいますか?Xcodeを削除して再インストールしようとしましたが、うまくいきませんでした。

通常のシミュレーター:

通常シミュレーター

網膜シミュレーター:

網膜シミュレーター

事前に助けてくれてありがとう!

編集: これは iPad シミュレーターではありません。これは「デバイス」メニューのスクリーンショットです。

デバイス タブ

4

3 に答える 3

1

同じ問題が発生していました。Mac のディスプレイ解像度を変更してみてください。私はRetina Macを使用しているので、少しいじる必要がありました。

Xcode は網膜用の別のシミュレーターを提供しましたが、1 つのシミュレーターでより高い解像度を実現するロジックを組み込んでいるようです。

于 2012-08-31T01:33:18.663 に答える
0

ここで最も重要な症状は、UI が標準解像度の iPhone に表示されている場合に予想されるスペースを正確に占めていることです。もう 1 つの重要な症状は、UILabels が色あせているように見えることです。これは多くの場合、特にラスタライズの場合、UILabel が画面の正しいスケールを受け取っていないことを示しています。

アプリ デリゲート (didFinishLaunchingWithOptions) でアプリを初期化するときに、UIWindow または UIWindow の rootViewController の境界を標準の iphone 解像度 (つまり 320x480) にハードコーディングしているかどうかを確認します。これらは、実際のポイントにハードコードするのではなく、[[UIScreen mainScreen] 境界] を使用して設定する必要があります。実際、画面のサイズをハードコーディングしたアプリ内の場所を探す必要があります。文字列「320」と「480」を検索してください。これらは、コードに表示されてはならない数字です。

もう 1 つの可能性は、いくつかのビューをラスタライズするように設定した (layer.shouldRasterize = YES) が、layer.rasterizationScale をメイン画面のスケール (すなわち [[UIScreen mainScreen] スケール]) に設定していないことです。 Retina コンテキストでは 2.0)。スケールを適切に設定していない場合、同じ種類の泥だらけの UILabel を見たことがあります。

あなたの投稿では、この変更は OS の更新後にのみ発生したと述べているため、これらはおそらく問題ではないことを認識していますが、念のために確認します。

更新: 考え直して、これらの境界をハード コーディングすることは悪い習慣であり、この問題を引き起こす可能性はありません。これは、iPhone の正しい論理境界であり、OS がユーザーに合わせてスケーリングするためです。したがって、これら 2 つの提案の間で、スケール関連のプロパティが正しく設定されていないことが原因である可能性が高くなります。もう 1 つの可能性は、UIView contentScaleFactor を使用していて、それを正しく設定していない場合です。

于 2012-09-04T07:02:10.523 に答える
-3

これは iPad シミュレーターです。iPhone に変更します。

ハードウェア -> デバイス

于 2012-08-02T18:12:30.820 に答える