Please enable JavaScript.
Coggle requires JavaScript to display documents.
Safe Area Dimistified (各プロパティの違いは何か。それぞれ値が変わると何にどう影響するのか。…
Safe Area Dimistified
各プロパティの違いは何か。それぞれ値が変わると何にどう影響するのか。
UIViewのinsetsLayoutMarginsFromSafeAreaとUIScrollViewのcontentInsetAdjustmentBehavior
UIViewのsafeAreaInsetsとUIViewControllerのadditinalSafeAreaInsets
UIScrollViewのadjustedContentInsetとcontentInset
iOS11のadjustedContentInsetとiOS10以下のcontentInsetを同じ値に同じにする必要がある?(safe areaを考慮するなら)
adjustedContentInsetの値はcontentInset + safe area
contentInsetAdjustmentBehaviorの値によってsafe areaがadjustedContentInsetへ影響するかどうかが決まる
adjustedContentInsetが書き換わるとscrollViewDidChangeAdjustedContentInset(_:)が呼ばれる
UITableViewのinsetsContentViewsToSafeArea
contentやseparatorのinsetを設定できる
separatorのinsetはiOS7,8,9で毎回新しいプロパティをつかうようにアップデートされるというカオスな状況だったが、iOS11からはこれ
UICollectionViewFlowLayoutのsectionInsetReference
layoutMarginやsafeAreaに対して値が設定できるようになった
理解の仕方
globalなSafeAreaがあると考えて、それがヒエラルキー上の全てのViewの収まる位置を規定する
親のViewからの相対として考えないほうがいい
UIViewControllerの階層構造の中で祖先のUIViewControllerが持つsafeAreaの影響を受ける
ScrollViewは特別な存在として扱う必要がある
TableViewのセパレータの歴史に新たな1ページが
safe area関係の各プロパティが書き換わった時にどうなるのかサンプルアプリを用意する
UIScrollViewにコンテツ配置
UITableView
通常のViewヒエラルキー
どんなライフサイクルで値が変わるのか
safeAreaInsetsDidChange()が呼ばれるのはどこか
ViewControllerのviewSafeAreaInsetsDidChange
ケーススタディー
PagingのUIで各要素はどう扱うべき?
カスタムのコンテナではどう扱うべきか
導入
作っているライブラリでUIScrollViewを継承した、TableViewライクなUIを実装している
safe areaに対応しよう
UITableViewやUICollectionViewに近い動作にすれば混乱せずに使えるのでは
UIScrollViewを継承しているので基本そレが持っているプロパティの変更によるレイアウトの変化をそのまま使えばいい?
思っていたよりプロパティが多いぞ...
それぞれのプロパティの値を変えるとどうなるのかよくわからないぞ...
どのタイミングでどの値が書き換わるのかよくわからない...