2

私の質問は、デフォルトのiPhoneメニューはストーリーボードで作成されたUIcollectionビューですか、それともその機能にもっとありますか?(その機能のエミュレートを回避するため)

4

2 に答える 2

5

SpringBoard のビュー階層を理解したい場合:

  1. まだ実行されていない場合は、iOS シミュレーターを起動します。
  2. シミュレーターで SpringBoard を見ていることを確認してください。
  3. Xcode で、[製品] > [プロセスにアタッチ] > [スプリングボード] を選択します。スプリングボード プロセスは、リストの「システム」セクションのかなり下にあります。
  4. 引き続き Xcode で、[Product] > [Debug] > [Pause] を選択します。
  5. Xcode のデバッグ コンソール ((lldb)プロンプトが表示される場所) で、 と入力しますpo [[UIApp keyWindow] recursiveDescription]

ほら、SpringBoard の画面上のビュー階層全体が印刷されます。私は次のように始まります:

(lldb) po [[UIApp keyWindow] recursiveDescription]
$0 = 0x0b63abf0 <SBAppWindow: 0xce3ef10; baseClass = UIWindow; frame = (0 0; 320 480); layer = <UIWindowLayer: 0xce3f010>>
   | <SBUIRootView: 0xb162de0; frame = (0 0; 320 480); layer = <CALayer: 0xb162e60>>
   |    | <UIView: 0xb163010; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0xb1630c0>>
   |    |    | <SBWallpaperView: 0xb1632a0; baseClass = UIImageView; frame = (0 0; 320 480); userInteractionEnabled = NO; layer = <CALayer: 0xb160f70>>
   |    |    |    | <UIImageView: 0xb1610d0; frame = (0 0; 0 0); hidden = YES; userInteractionEnabled = NO; layer = <CALayer: 0xb161130>>
   |    |    |    | <UIImageView: 0xb161160; frame = (0 0; 0 0); hidden = YES; userInteractionEnabled = NO; layer = <CALayer: 0xb163390>>
   |    |    | <SBIconContentView: 0xb163da0; frame = (0 0; 320 480); clipsToBounds = YES; autoresize = W+H; layer = <CALayer: 0xb163e50>>
   |    |    |    | <UIView: 0xc939710; frame = (0 371; 320 109); opaque = NO; autoresize = W+TM; layer = <CALayer: 0xc939770>>
   |    |    |    |    | <SBDockIconListView: 0xc9381d0; frame = (0 20; 320 89); autoresize = TM; layer = <CALayer: 0xc9382c0>>
...
于 2013-03-11T18:20:20.963 に答える
1

スプリングボードに関するウィキペディアの記事から:

SpringboardまたはHome Screenは、iOS のホーム画面を管理する標準アプリケーションです。その他のタスクには、WindowServer の起動、アプリケーションの起動とブートストラップ、および起動時のデバイス設定の一部の設定が含まれます。

于 2013-03-11T15:25:20.550 に答える