LoginSignup
3
1

More than 5 years have passed since last update.

iPhoneXのViewでの位置の取得方法まとめ

Last updated at Posted at 2018-08-23

取得するタイミングに注意

詳しくはこちらの記事に書いてあったが、viewWillLayoutSubviews()以降に呼ばれるメソッドの中でしかSafeAreaの値は取得できないので注意。
上の記事にはviewDidLoad()などが呼ばれる順番も書いてあった。

SafeAreaの座標の取得方法

SafeAreaは上下に被らない長方形の所の話
image.png

            //safeAreaFrameが上の青い部分のCGRect.
            let safeAreaFrame = self.view.safeAreaLayoutGuide.layoutFrame
            let safeAreaTop = safeAreaFrame.origin.y
            let safeAreaBottom = safeAreaFrame.origin.y + safeAreaFrame.height
            let safeAreaRight = safeAreaFrame.origin.x
            let safeAreaLeft = safeAreaFrame.origin.x + safeAreaFrame.width

SafeArea外の画面を覆う四角の座標取得方法

iPhoneXはいびつな画面の形をしているが、それを覆うような長方形viewをうまく配置すると考えると話は楽になる

            //overViewFrameが上からかぶせる長方形のCGRect
            let overViewFrame = self.view.safeAreaLayoutGuide.owningView!.frame
            let overViewTop = overViewFrame.origin.y
            let overViewBottom = overViewFrame.origin.y + overViewFrame.height
            let overViewRight = overViewFrame.origin.x
            let overViewLeft = overViewFrame.origin.x + overViewFrame.width

あとはうまく使おう

ここさえ取れればいくらでも自作でnavigationBarやらを作れる気がしたのでやってみよう。
あとでまたnavigationBarを作ったら記事書いてここに載せます。

追記: かけたー
iPhoneXでも他でも使える"上に表示するバー"(NavigationBar)を作ろう

3
1
2

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
3
1