Search code examples
iosstatusbaruipageviewcontroller

UIPageViewController: Child Controller ignoring status bar height during scrolling


I'm having some trouble with a UIPageViewController. If I scroll to a new page, the new view controller is behind the status bar while I'm scrolling. After the scrolling, the view controller position itself below the status bar.

I'm using Storyboard (Universal). UIPageViewController has attribute Extend Edges: Under Top Bars. What am I missing?

enter image description here

  • set automaticallyAdjustsScrollViewInsets to false didn't work
  • use of edgesForExtendedLayout = UIRectEdge.None didn't work either
  • found some open questions here but no answers ( link )

UPDATE

Another reason for the jumping are 'Margins' from 'Constraints' (found here). Ensure that you uncheck margins if you use constraints (right Dialog). You can remove them later in the Utilities (left Dialog). Check both of the connected views!

enter image description here


Solution

  • I just found a possible solution:

    In my case, the UIPageViewController container had a Top Space of 0 constraint to its superview. The superview was the root container which contains the status bar.

    I changed the value of the Top Space to 20, which is higher than the status bar. Now it doesn’t move the views below the status bar, because they already are.

    Hope that helps!