Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hide status bar in iOS without removing its view

I want to hide status bar in my iPhone app on a button press and I want to show it again on pressing another button.

I tried to hide the status bar by overriding -(BOOL)prefersStatusBarHidden in my view controller but this also removes its view from the top.

So a jump is seen on removing this status bar. What I want to do is just to hide the content on the status bar while keeping the background of status bar.
For example: You can check the same functionality in gmail app. When you open the side drawer in gmail app, then only the contents on status bar are hidden and there is no jump.

like image 468
Udit Agarwal Avatar asked Jan 28 '15 12:01

Udit Agarwal


Video Answer


1 Answers

I fixed this problem with additionalSafeAreaInsets property at iOS13. No other solution worked for me at iOS13. When hiding status var set additionalSafeAreaInsets top value to 20, when unhiding set it again to 0.

For devices with notch no need to change safe area insets. Do this for only other devices.

like image 70
Batuhan Altun Avatar answered Nov 10 '22 04:11

Batuhan Altun