これが私が解決しようとしている問題です。
各
viewController
に、広告と実際のコントロール要素を挿入しようとしています。 raywenderlinch.comでいくつかのチュートリアルを終了して、人々がアプリに専門的に広告を掲載する方法を理解しました。彼らはUIViewsを使用して、ViewControllerのメインビューの下に2つのビューを作成しました。そのため、1つはsubview
が広告を保持し、もう1つは実際のアプリコンテンツを保持していることを完全に理解しました。広告が読み込まれた場合は画面を表示するか、他のビューにすべての使用可能な領域を持たせます。
Xcodeに戻った後、そこで学んだ方法でコーディングを始めました。しかし、ストーリーボードにUIView
をドロップしているときに、containerView
が表示されました。これは、チュートリアルの作成時には存在していなかったと思います。
そこで私は、アプローチとその長所と短所の両方について質問するためにここにいます。
つまり、基本的にはUIView
とContainerView
です。どちらの方法で、なぜですか?
どんな助けでも大歓迎です。
すでにビューがあり、ビュー内のインタラクションを構築および処理するために専用のビューコントローラを用意する必要がない場合は、UIView
を使用します。
IViewヘルプページから:
UIViewオブジェクトは、それを囲む
superview
(ビュー階層内の親)の長方形の領域を要求し、その領域内のすべての描画を担当します。
簡略化された構造:YourViewControllerhas)--->---(UIView
すでに持っているビューコントローラーに別のビューコントローラーを埋め込む必要がある場合は、UIContainerView
を使用します。埋め込みビューコントローラーは、UIViewContainer
が占める領域のビューを返す役割を果たします。したがって、UIContainerView
は、それが占める領域内にUIView
をレンダリングするために使用するViewControllerを認識しています。
IContainerViewヘルプページから:
コンテナビューは、子ビューコントローラを含めることができるビューコントローラのビューサブグラフ内の領域を定義します。
簡略化された構造:YourViewControllerhas)--->---(SubViewControllerhas)--->---(UIView ==
そのSubViewControllerはビューを返し、そのイベントを処理します。
別の答えとして、技術的な違いの代わりにユースケースを検討することもできます。例:なぜコンテナビューを使用するのですか?
コンテナビューの一般的な使用法は、ストーリーボードで直接ビューを再利用(共有)することです。以前は、ビューを再利用するには、別の「xib」ファイルを作成し、ViewControllerがロードされたときにそのビューをプログラムで追加する必要がありました。
上の画像は this からのものです。2つ以上のビューコントローラー間で共有されるコンテナービューをセットアップする方法を説明する、非常にシンプルでわかりやすいガイドです。
それをいつ使用するかについての他のいくつかの考え:
うまくいけば、これはコンテナビューがいつ適用されるかを理解しようとしている人々に役立つでしょう。他の使用例がある場合は、編集/追加するか、コメントに残してください。
詳細を見ると、UIViewクラスタイプのこれらのコンテナビューが表示されます。 containerViewが必要な理由を理解するには、以下の部分を参照してください。
ほとんどの点で、コンテナビューコントローラはコンテンツビューコントローラと同じです。ビューとコンテンツを管理し、アプリ内の他のオブジェクトと調整し、レスポンダーチェーン内のイベントに応答します。コンテナコントローラーを設計する前に、コンテンツビューコントローラーの設計に精通している必要があります。 「カスタムコンテンツビューコントローラーの作成」の設計に関する質問は、コンテナーの作成時にも適用されます。
コンテナビューの詳細については、goto link ただし、始める前に、次のことを理解しておく必要があります。
また、コンテナビューの使用方法については このチュートリアル を確認できます。
したがって、両方のアプローチを選択できます。これがお役に立てば幸いです。幸せなコーディング:)