Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iPhone X status bar height

Tags:

ios

iphone-x

I have developed an app without autoLayout or interface-builder, all by code. It runs ok in all iPhones except iPhone X where the top bar stays under the new black thing in the middle.

It's possible to get that height by code, so I can shift my Navigationbar that height down and all runs normal ?

The solutions I see, they use auto layout.

I just want the get the distance to shift it down..

like image 712
F79 Avatar asked Oct 16 '17 17:10

F79


2 Answers

You can always get the status bar height with or without status bar hidden by:

UIApplication.shared.keyWindow!.safeAreaInsets.top

and the home screen indicator

UIApplication.shared.keyWindow!.safeAreaInsets.bottom

If it's landscape the value would change

and safeAreaLayoutGuide is there also

like image 82
Puttin Avatar answered Oct 04 '22 00:10

Puttin


In my Swift app, I get the frame of the status bar with

Swift: UIApplication.shared.statusBarFrame

Objective-C: [UIApplication sharedApplication].statusBarFrame

That's a CGRect, so you can get its height by doing size.height on that. So, altogether, you can do this in Objective-C:

[UIApplication sharedApplication].statusBarFrame.size.height
like image 24
Michael Hulet Avatar answered Oct 03 '22 23:10

Michael Hulet