Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios WKWebView中的奇怪边距_Ios_Swift - Fatal编程技术网

Ios WKWebView中的奇怪边距

Ios WKWebView中的奇怪边距,ios,swift,Ios,Swift,我有一个UIViewController,其中包含几个UIView(使用Interface Builder构建),其中一个我想用作WKWebView。我已经能够创建WKWebView并将其作为子视图加载到其中一个UIView中——但是当我加载URL时,我在顶部和左侧得到了一个奇怪的填充。我在使用UIWebView时也遇到了同样的问题,但可以使用 self.automaticallyAdjustsScrollViewInsets = false; 但是,这似乎对动态加载的WKWebView毫无帮

我有一个UIViewController,其中包含几个UIView(使用Interface Builder构建),其中一个我想用作WKWebView。我已经能够创建WKWebView并将其作为子视图加载到其中一个UIView中——但是当我加载URL时,我在顶部和左侧得到了一个奇怪的填充。我在使用UIWebView时也遇到了同样的问题,但可以使用

self.automaticallyAdjustsScrollViewInsets = false;
但是,这似乎对动态加载的WKWebView毫无帮助

在从web加载页面时,我也会得到相同的填充,因此我知道它不在本地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)
}
这是它的样子。UIView容器的BG颜色为深灰色——您还会注意到html似乎超出了UIView,即使我将WebView的框架设置为与UIView容器相同:


这是因为
WKWebView
通过使用适当的
contentInset
为导航栏保留了空间。但是,由于WKWebView是子视图,因此不再需要进行此调整

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

在使用
viewDidLoad
方法之后执行此操作非常重要。例如,在
WKNavigationDelegate

有趣的事实中,在
didnavigation
中,在Swift中,这样写更可爱:
webView.scrollView.contentInset=.zero
Objective-C等价物是:
webView.scrollView.contentInset=UIEdgeInsetsZero
我自己在webView中加载html源代码。添加样式标记并将边距设置为零对我来说很有效。body{margin:0;}您好,您的答案可能是正确的,但请尝试为您的代码添加一些解释:)语言错误。在Swift 5中,以下内容就足够了:
webView.scrollView.contentInsetAdjustmentBehavior=。never
self.automaticallyAdjustsScrollViewInsets = NO;
  if (@available(iOS 11.0, *)) {
    self.webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
  }