広告用のバナー領域をAutoLayoutを使って確保する
無料アプリには、画面の下に広告バナーを表示するものがあります。このバナーは画面の向きが縦の時と横の時で高さが異なることがあります。そんな広告用のバナー領域をAutoLayoutを使って実現する方法について説明します。
完成イメージ
今回は高さの違う二つのバナーをViewで用意しています基本的には緑色のバナー(height=50)が表示されます。ただし、iPhone(ただしiPhone 6plusをのぞく)を横に向けた時は、青いバナー(height=33)が表示されます。iPadなど画面が十分に大きい端末の時には、縦横問わず緑色のバナーが表示されます。
Autolayoutの共通的な設定を行う
まずはAutolayoutを使って縦横共通となる設定を行います。設定している項目は次の通りです。
- TableViewの上下左右のマージン
- 緑色のバナーの下と左右のマージン、height=50
- 青色のバナーの下と左右のマージン、height=33
TableViewの下のマージンは-50としていますが、これは緑色のバナーの高さ分です。
バナー用のViewを出し分ける
ここでは、基本的には緑色のバナーを表示しつつ、iPhoneの横画面のときには青色のバナーを表示する処理を行っています。
対象となるビューを選び、ユーティリティエリアのAttributeを選択します。Viewカテゴリの一番下に"Installed"というカテゴリがあるので、ここで共通設定と個別設定を行います。今回は、緑色のバナーについては共通はチェックが入り、任意のwidthでheightがCompactの場合のみチェックが入らない設定を行います。そして青色のバナーについては、その逆の設定を行います。
ストーリーボード上で、widthとheightを切り替えたときに正しくバナー表示が切り替わっていることを確認します。
TableViewの下のマージンを設定する
次に、バナーが切り替わったときにTableViewの下につけたマージンの幅を変更します。これは、ストーリーボード上でheightを切り替えた状態で、Constraintの値を直接変更します。
ここでは、任意のwidthでheightがCompactの場合のみ、TableViewの下のマージンを-33としています。
サンプルソース
Author And Source
この問題について(広告用のバナー領域をAutoLayoutを使って確保する), 我々は、より多くの情報をここで見つけました https://qiita.com/nakaken0629/items/432a5a0bb48d14cd7365著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .