LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 3 years have passed since last update.

Swiftであらゆる画面サイズに対応!“AutoLayoutの活用方法”【TUBオンライン】

Last updated at Posted at 2020-07-04

本イベントの流れ

  • このイベントで得られること
  • AutoLayoutとは?
  • なぜAutoLayoutを使うのか?
  • 実装方法
  • 実演
  • 質疑応答
  • アンケート

このイベントで得られること

  • AutoLayoutの使い方がわかる
  • なぜAutoLayoutを使うのかがわかる

AutoLayoutとは

様々なサイズの端末でみても、きれいに画面を表示してくれる仕組みです。最近はバリエーションも多いので、リリースするにはAutoLayoutはほぼ必須になっています。またiPhoneを縦や横に回転させた時にアプリが勝手に画面回転し、表示している画面構成を切り替えているのもAutoLayoutです。

なぜAutoLayoutを使うのか?

  • レイアウトが崩れていると単純に使いづらいアプリになる
  • 画面が崩れてるとヒューマンインターフェースガイドラインに違反するためAppleからリジェクトされる

AutoLayoutの使い方

AutoLayoutの指定方法は以下2種類の方法がある

  • ソースコード上で記載
  • storyBordで記載

今回はstoryBordで指定する方法を学習、実践していきます

AutoLayoutでできること

ではAutoLayoutでできることとそのやり方を説明していきます。

AutoLayoutの指定場所

スクリーンショット 2020-07-04 11.15.53.png

AutoLayoutの指定

内容は以下のようになっています
スクリーンショット 2020-07-04 11.19.42.png

名前 詳細
Width 横幅の固定
Height 高さの固定
Equal Widths 他の要素と横幅を合わせる
Equal Heights 他の要素と高さを合わせる
Aspect ratio 要素のアスペクト比を指定する
Constrain to margins マージンを指定する

位置の指定

スクリーンショット 2020-07-04 11.27.38.png

名前 詳細
Safe Area 画面から適度に間隔を空けた位置
View 画面端
要素名 表示されている要素からの位置

画面から見た位置の指定

スクリーンショット 2020-07-04 11.50.17.png

名前 詳細
Leading Edges 複数の要素の左端を揃える
Trailing Edges 複数の要素の右端を揃える
Top Edges 複数の要素の上部を揃える
Bottom Edges 複数の要素の下部を揃える
Horizontal Centers 複数の要素の縦の中心を揃える
Vertical Centers 複数の要素の横の中心を揃える
First Baselines 複数の塊どうしの要素の上部を揃える
Horizontally in Container 画面の縦に対して中央に揃える
Vertically in Container 画面の横に対して中央に揃える

縦、横への対応

AutoLayoutではどの画面が縦なのか横なのかによって適応させるかさせないかを指定することができます
今回はiPhoneXでの縦画面、横画面の指定方法を教えます!

スクリーンショット 2020-07-04 13.08.20.png
変更したいAutoLayoutの要素をダブルクリックすると以下のような画面が出てきてinstalledの右の+を押すとWidthHeightを指定できるようになります
スクリーンショット 2020-07-04 13.09.09.png
以下のように指定することで縦画面のとき、横画面の指定ができるようになります

名前 Width Height
Compact Regular
Regular Compact

追加後は以下のような表示になるので、縦/横だけにしたいという場合は追加したあとにチェックボックスをオンにするようにしましょう!
スクリーンショット 2020-07-04 13.14.31.png

実演!

本日作成するアプリの完成図は以下のようなものです
縦、横画面に対応したレイアウトを作っていこうと思います!
みなさんと一緒に作っていければとおもいます!
スクリーンショット 2020-07-04 13.03.01.png
スクリーンショット 2020-07-04 13.02.39.png

本イベントのアンケートにご協力お願いします!

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up