4

ビュー コントローラー (VC) に多数のビューとサブビューがある場合、サブビューを完全に表示することさえできないため、サブビューを変更することが非常に困難になります (サブビューは他のサブビューの背後に隠れています)。たとえば、私の VC の 1 つの現在の状態を見てください。xcodeにたくさんのビューとサブビューを持つView Controller

強調表示された「おめでとうございます - UILabel」またはその UIView が表示されません。

特定のビューをはっきりと見る方法はありますか (他のすべてのビューの一番上にある可能性があります)?

通常、UIView を別のダミーの空の VC にドラッグ ドロップし、その VC で完全にビューをデザインして、すべての制約を適用し、最後に実際の VC にドラッグ ドロップします。これはほとんどの場合うまくいきますが、私には非効率的なアプローチのように思えます。iOS6 では重なり合ったビューを簡単に見ることができましたが、iOS7 では非常に困難です。iOS7 Interface Builder に不足している機能はありますか? 貴重な時間をありがとう。

更新: Spark Inspectorはここで役に立ちますか? 私は開発初心者なので、新しいプラグインを試して理解するのに時間を無駄にしたくありません。ありがとう。

4

1 に答える 1

2

これは、Xcode の新しいストーリーボード機能の弱点の 1 つと広く考えられています。多数の単純なコントローラーを必要とするアプリには最適ですが、インターフェイスが複雑になると操作が難しくなります。ほとんどの経験豊富な開発者は、構築するものに応じて、ある場所ではストーリーボードを使用し、別の場所では個々のコントローラー XIB を使用します。

問題を解決する方法は次のとおりです。

ステップ 1. ビュー コントローラーをストーリーボードから独自の XIB に分割する

  • [ファイル] メニューから [新規ファイル] を選択し、([ユーザー インターフェイス] セクションから) 空の XIB ファイルを選択します。「YourExactVCClassName.xib」という名前を付けます。

  • ストーリーボードに移動します。View Controller の View 全体をコピーしてから削除します。

  • View Controller を新しい XIB に貼り付けます。「ファイルの所有者」のクラスをView Controllerに変更し、ビューからファイルの所有者へのアウトレットを描画して「ビュー」プロパティを設定します。

アプリが実行されると、ストーリーボードからビュー コントローラーをインスタンス化しようとします。ストーリーボードにそのコントローラーのビューがないことがわかると、ファイル MyViewController.xib が自動的に検索され、そこから読み込まれます。

ステップ 2. メイン ビューの内容を意味のある分離ビューに整理します。

  • 上記の例では、ゲームのさまざまな状態 (ゲーム オーバー、ハイ スコアなど) に対してさまざまなビューがあるように見えます。それらのそれぞれを取得して、メイン ビューから削除します。独自の XIB ファイルにコントローラーを配置すると、ビューをコントローラーの周囲の空白にドラッグするだけで済みます。ドラッグした各ビューは、XIB ファイルの最上位オブジェクトになり、簡単に設計および表示できます。 iPhone 5 サイズのワークスペースにとらわれる必要はもうありません。

  • 切り離された最上位ビューごとに IBOutlets を作成して、コントローラーで参照できるようにします。

  • viewDidLoad、個別の各ビューをプログラムでメイン ビューに追加します。フレームを設定したり、それらの一部を非表示にしたりしたい場合があることに注意してください。より多くのコードを記述する必要がありますが、一般に、メンテナンスが簡単な XIB にはそれだけの価値があります。

于 2013-11-18T00:26:13.930 に答える