4

画面全体をカバーしたいというビューがあります。そして、そのフレームを画面全体をカバーするように設定したい。スタック オーバーフローをブラウズすると、画面を覆うようにビュー フレームを設定する次の 2 つの異なる方法が見つかりました。

[UIScreen mainScreen].bounds
[UIApplcation sharedApplication].keyWindow.bounds

私には、常に同じ値を返しているように見えます。少なくとも、私が試したいくつかのテストケースではそうです。

現在、私は を使用しUIScreenていますが、これらの呼び出しの違いを知りたいですか? 異なる値を返す場合はありますか?

4

1 に答える 1

15

方法は少し異なります。[UIScreen mainScreen]デバイス オブジェクトを返しますUIScreen。この境界は常にデバイス画面のサイズになります。[UIApplication sharedApplication].keyWindowアプリケーションの現在のキーUIWindowを返しますが、デバイスの画面のフルサイズではない可能性があります。

これらが異なる可能性があるもう 1 つの明白なケースは、デバイスが複数の画面に接続されている場合です。この場合、[UIScreen mainScreen].boundsは常にデバイスの画面サイズを返しますが、キー ウィンドウは他の画面の 1 つにある可能性があり、接続されている画面の種類に応じて、まったく異なるサイズになります。

于 2013-07-04T08:41:56.283 に答える