Search code examples
iosswiftuiwebview

iOS WebView blank gap


I have embedded a Youtube video in my iOS 8.3 app using youtube's standard embed url (sample) which is working as expected but looking pretty weird. That white gap (blue zone on the view tree inspector) should not be there.

View tree

I can confirm it's not a CSS issue as the inspector shows it is effectively occupying 100% width and height of the uiWebView component.

enter image description here

I have setup constraints to the left, top and right borders to equate the window/layout guides so that's not the problem either. It seems a private _UIWebViewScrollView component is taking all the height i assigned to the UIWebView, and pushing the real content (UIWebViewBrowserView) to the bottom of said area.

ViewTree UIWebViewBrowserView detail

I looked up info on the scroll view class but it seems there's only header files scattered on the web with no real apple docs so i'd rather not mess with that scroll view if possible.

Seems my hunch is right, the same problem was described by someone on another question also regarding a scrollview but the mentioned function to fix the problem either does not exist anymore or is now private. I'm still looking for answers.


Solution

  • I fixed it.

      override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews();
    
        playerWebView.scrollView.contentInset = UIEdgeInsetsZero;
      }
    

    Adding to the edit i made to the question, i forgot swift changes set and get methods for accessor variables as in C#.