Wantedly, Inc.では一緒に働く仲間を募集しています
- オペレーションスタッフ
- Web エンジニア
- 第二新卒向け座談会
- 他38件の職種
- 開発
- ビジネス
- その他
iPhoneXの場合は
をsafeAreaとして、タイトルやボタン等は置かないが背景等は表示するようにします。
Safe Area Relative Marginの項目がデフォルトでOnだと思うので、
そのままLayoutGuideにそって今まで通り作ると対応される。
iOS11からUIViewにsafeAreaInsetsメソッドが追加されているので、そこから取得する。
static let barHeight = CGFloat(30)
みたいな定数に応じてtableViewのlayoutやConsetInsetsをView追加前に調整している場合に、上手くUIView.safeAreaInsetsを使って調整することができなかった。
暫定的な対応としてUIScreen.main.boundsをつかってiPhoneXかどうか判定して、iPhoneXの場合は考慮するべきinsetsを返すextentionを作って調整した。
class func screenSafeAreaInsets() -> UIEdgeInsets {
let isiPhoneX = UIScreen.main.bounds.size == CGSize(width: 375, height: 812)
return isiPhoneX ? UIEdgeInsets.init(top: 44, left: 0, bottom: 34, right: 0) : .zero
}
// iPhoneX以外にもSafeAreaInsetsを考慮するべき状況は増えていくと思うので、あくまで暫定的な対応として使ってください。画面回転は考慮していません。
iPhoneXの発売が楽しみですね。