開発Tips&ログ

iOS/Androidアプリ、WEB開発、インフラなどソフトウェア開発についての技術ブログ。

iPhoneXからSafeAreaの取得方法

はじめに

ノッチ対応等でiPhoneXからSafeAreaの高さを取得方法についてです

実装

swift

if #available(iOS 11.0, *) {
  let safeAreaInsets = UIApplication.shared.keyWindow?.safeAreaInsets
  let top = safeAreaInsets?.top
  let bottom = safeAreaInsets?.bottom
}

Objective-c

if (@available(iOS 11.0, *)) {
  UIEdgeInsets safeAreaInsets = UIApplication.sharedApplication.keyWindow.safeAreaInsets;
  CGFloat top = safeAreaInsets.top;
  CGFloat bottom = safeAreaInsets.bottom;
}

safeAreaInsetsAPIはiOS11以降でしか使えません。iPhoneX以外だと safeAreaInsets はtop, bottom, right, leftの全てが0になります。