2

私はUIWindowクラス参照を見ていましたが、そこにUIScreenデフォルトのプロパティが見つかりました[UIScreen mainScreen]

@property(nonatomic,retain) UIScreen *screen NS_AVAILABLE_IOS(3_2);  
// default is [UIScreen mainScreen]. changing the screen may be an expensive operation and should not be done in performance-sensitive code

in でUIWindowオブジェクトを初期化UIScreenしますAppDelegate

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]

なぜUIScreenプロパティが必要なのか疑問に思っていますUIWindow

4

5 に答える 5

2

UIScreen はデバイス フレームを参照します。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html

デバイス iPhone 4、iPhone 5、iPhone 6、iPhone 6+ & iPad を見つけるためのデバイス サイズを取得できます。

[[UIScreen mainScreen] bounds]// デバイスのサイズを表示します。

上記のサイズごとにデバイスを区別できます。

[[UIScreen mainScreen] bounds].size.width// デバイスの幅を指定します [[UIScreen mainScreen] bounds].size.height)// デバイスの高さを指定します。

または、このように使用できます

CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];

お役に立てば幸いです...

于 2014-12-05T07:12:34.460 に答える
0

アプリケーションにはUIWindow、他のすべてのビューの描画が 1 つだけあります。アプリケーションが開始さUIWindowれると、画面スペース全体がカバーされます。UIWindowこれが、インスタンス化するときにフレーム サイズをメイン画面の境界サイズに設定する必要がある理由です 。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds];

UIScreenここの役割は何ですか?

UIScreenデバイス画面の四角形を表します。UIScreen は、解像度、ピクセル縦横比、明るさ、調光など、デバイスの画面属性について詳しく知っています。

反対側でUIWindowは、ビュー階層を管理し、ビューが画面にコンテンツを表示するのを助けます。UIWindow初期化中に、バインドされたプロパティからフレームを取得しUIScreen、それ自体を初期化して、デバイス画面から最大のランドスケープをサブビューに与えることができるようにします。初期化が完了すると、UIWindowフレームにはステータスバー、描画エリア、およびボトムバーが含まれます。

于 2014-12-05T08:08:01.033 に答える
0

IOS 開発者ライブラリから

self.windowウィンドウ オブジェクトを保持するように構成されているアプリケーション デリゲートの宣言されたプロパティであると見なされます。代わりに外部ディスプレイ用のウィンドウを作成する場合は、それを別の変数に割り当て、UIScreenそのディスプレイを表す非メイン オブジェクトの境界を指定する必要があります。

ウィンドウを作成するときは、常にウィンドウのサイズを画面いっぱいに設定する必要があります。ステータス バーやその他の項目を表示するためにウィンドウのサイズを縮小しないでください。いずれにせよ、ステータス バーは常にウィンドウの上に浮いているので、ステータス バーに合わせて縮小する必要があるのは、ウィンドウに表示するビューだけです。また、View Controller を使用している場合、View Controller はビューのサイズ変更を自動的に処理する必要があります。

于 2014-12-05T07:27:17.613 に答える
0

UIScreen オブジェクトは、ハードウェア ベースのディスプレイに関連付けられたプロパティを定義します。iOS デバイスには、メイン画面と 0 個以上の付属画面があります。このクラスを使用して、デバイスに接続されている各ディスプレイの画面オブジェクトを取得します。各画面オブジェクトは、関連付けられたディスプレイの境界四角形と、その明るさなどのその他の興味深いプロパティを定義します。詳細については、このドキュメントを参照してください

于 2014-12-05T07:46:28.417 に答える