Подтвердить что ты не робот

Странная маржа в WKWebView

У меня есть UIViewController с несколькими UIViews (построенными с помощью Interface Builder), включая тот, который я хочу использовать как WKWebView. Я смог создать WKWebView и загрузить его как подзаголовок в один из этих UIViews, но когда я загружаю URL-адрес, я получаю это странное дополнение вверху и слева. У меня была такая же проблема, когда я использовал UIWebView, но смог ее решить, используя

self.automaticallyAdjustsScrollViewInsets = false;

Однако это, похоже, совсем не помогает с WKWebView, который был загружен динамически.

Я также получаю такое же дополнение при загрузке страницы из Интернета, поэтому я знаю ее не в моем локальном html.

Изменить: я начинаю задаваться вопросом, вызывает ли автоопределение в контейнере UIView...

Вот соответствующий код:

    var webView:WKWebView!
@IBOutlet var containerView : UIView?
@IBOutlet weak var webContainer: UIView!

override func loadView() {
    super.loadView()
    self.webView = WKWebView()
    if(self.webView != nil){
        self.containerView = self.webView!
        self.containerView!.frame = self.webContainer.frame
        self.webContainer.addSubview(self.containerView!)
    }
}

override func viewDidLoad() {
    super.viewDidLoad()
    let bundle = NSBundle.mainBundle()
    let url = bundle.URLForResource("index", withExtension: "html")
    let request = NSURLRequest(URL: url!)
    webView.loadRequest(request)
}

Вот как это выглядит. Цвет BG контейнера UIView темно-серый - и вы также заметите, что html, похоже, выходит за пределы UIView, даже если я установил фрейм WebView таким же, как контейнер UIView:

введите описание изображения здесь

4b9b3361

Ответ 1

Это связано с тем, что WKWebView сохраняет пространство для панели навигации с помощью соответствующего contentInset. Однако, поскольку ваш WKWebView является подчиненным, эта настройка больше не нужна.

self.webView.scrollView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)

Это важно сделать после метода viewDidLoad. Например, в didFinishedNavigation в WKNavigationDelegate

Ответ 2

self.automaticallyAdjustsScrollViewInsets = NO;
  if (@available(iOS 11.0, *)) {
    self.webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  }