2015年11月26日木曜日

UITableViewのInset



UITableViewCellの左側のスペース(Inset.left)。
Defaultの設定では、表示する端末によってサイズが変わります。

iPhone5, 6 では 16px。
iPhone6Plusでは 20px。
Storyboard上では15px。

UITableViewCellのStyleを、提供されているBasicなどを使えば自動的にこの値になります。
Customでセルを自作する場合はSeparatorとの整合性を合わせるのを忘れずしないといけません。

SeparatorのInsetはStoryboardから変えられます。
UITableViewのAttribute Inspector > Separator inset を Customにして値を設定。



逆に、Separator Insetのサイズを、Customセルのラベルなどに反映する方向は...Storyboard上の設定だけで完結する方法が見つけられなかった。

コードで行う場合、Separator Insetの値が確定するのは、viewDidLayoutSubviews 以降になる。
そのタイミングで値を取得してConstraintに設定すれば、一応目的は果たせるが、ちょっと面倒。

簡単に済ますのであれば、

CustomとBasicなどの混在はしない
Customを使う場合は、Separator insetを指定する

ですね。
• • •