8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ReadableContentGuideの使いかた

Last updated at Posted at 2020-08-13

ReadableContentGuideとは

ReadableContentGuideは、iPhoneにデザインが最適化されているアプリをiPadで開いたときに、UIButtonやUITableViewCellが横長になって見にくくなるのを防ぐためのマージンです。
Apple Reference

例えば
なし あり

TableViewを表示したときに、ReadableContentGuideを設定しないと左に寄せられますが、有効にすれば良い感じのマージンがつけられて見やすい位置にセルが調整されます。

適用方法

通常のUIButtonとかUILabelみたいなコンポーネントに適用するのは簡単です。

  1. 適用したいコンポーネントの親Viewに対してReadableContentGuideに従うかどうかの設定
  2. 適用したいコンポーネントの親ViewへのConstraintにマージンを含めて追加する

具体的に説明すると、

STEP1

  • Interface Builderの場合、Show the size inspector > LayoutMarginsFollow Readable Widthにチェックを入れる
Screen Shot 2020-08-13 at 16.05.12.png
  • コードの場合、親ViewのcellLayoutMarginsFollowReadableWidthプロパティをtrueにする

view.cellLayoutMarginsFollowReadableWidth = true

STEP2

STEP1を設定後、実際にConstraintにMarginを指定してReadableContentGuideに対応させます。

  • Interface Builderの場合、今まで直接Superview.Leading等を指定していた場合は、Relative to Marginを指定する
Screen Shot 2020-08-13 at 16.43.44.png
  • コードの場合、親viewのleadingAnchorを直接呼び出しするのではなく、readableContentGuideを指定して呼び出します。
icon.leadingAnchor.constraint(equalTo: contentView.readableContentGuide.leadingAnchor),

UITableViewに適用する場合

前提として、CellContentViewに対してPreserve Superview Marginsのチェックを入れておいてください。
デフォルトセルは標準でデバイスによって違うマージンを持っているようで、カスタムセルと同時に使用したときにマージンに差が生まれます。
参考リンク

デフォルトのセルの場合

let cell = UITableViewCell(style: .default, reuseIdentifier: nil)

特に設定することはありません。
1. 適用したいコンポーネントの親Viewに対してReadableContentGuideに従うかどうかの設定
これを設定すれば、自動的に適用されます。

  • Interface Builderであれば、UITableView自体のFollow Readable Widthにチェックを入れる。
  • コードであれば、UITableViewのインスタンスのcellLayoutMarginsFollowReadableWidthtrue

カスタムセルの場合

デフォルトのセルの場合の設定と、カスタムセルのcontentViewとその内部のコンポーネントに対して、マージンを指定して設定すれば適用されます。

例えば、
このカスタムセルがあったときに、
Screen Shot 2020-08-13 at 16.56.06.png
ImageViewとcontentViewとのConstraintに対して、Relative to Marginsを指定します。
Screen Shot 2020-08-13 at 16.43.44.png

これを前(Trailing)と後ろ(Leading)に対して適用すれば、ReadableContentGuideによってiPadでも良い感じに表示されます。


TableViewにReadableContentGuideを適用したサンプルを作ったので、参考程度にどうぞ。
https://github.com/0eta0/ReadableContentGuideTest

参考

https://techlife.cookpad.com/entry/2018/12/10/090000
http://ichiko-revjune.hatenablog.com/entry/2018/07/08/201837

8
5
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
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?