iOS 9 - 在通过 SFSafariViewController 加载的网页底部隐藏工具栏

Posted

技术标签:

【中文标题】iOS 9 - 在通过 SFSafariViewController 加载的网页底部隐藏工具栏【英文标题】:iOS 9 - hide toolbar at bottom of web page loaded via SFSafariViewController 【发布时间】:2015-12-08 01:37:24 【问题描述】:

我试图隐藏出现在使用 SFSafariViewController 加载 URL 的页面底部的导航工具栏(返回和前进,在 safari 中打开...)。 我尝试在导航控制器上设置以下属性,但它不起作用/ [_safariViewController.navigationController setToolbarHidden:YES]; 当使用使用 UIWebView 类的视图控制器时,我可以隐藏它。有什么建议吗?

谢谢

【问题讨论】:

【参考方案1】:

你可以做的是调整SafariViewController的框架。

let safari = SFSafariViewController(url: URL(string: "https://wwww.google.co.nz")!)
self.present(safari, animated: true) 
    let frame = safari.view.frame
    frame.size = CGSize(width: frame.width, height: frame.height + 44.0)
    safari.view.frame = frame

【讨论】:

对于 ios 13,这会将顶部栏向上移动并与状态栏重叠。【参考方案2】:

根据 Apple 关于 SFSafariViewController 的文档,似乎没有公开可访问的方式来隐藏“完成”按钮或 URL 栏。如果您需要自定义浏览器界面,Apple 建议您使用 WKWebView。

有一个关于 WKWebView 的 AppCoda 教程,向您展示了如何创建一个带有嵌入式 WKWebView 的 ViewController。希望对您有所帮助!

【讨论】:

以上是关于iOS 9 - 在通过 SFSafariViewController 加载的网页底部隐藏工具栏的主要内容,如果未能解决你的问题,请参考以下文章

更新到 iOS 9.3.1 后无法通过 iTunes 安装 .ipa

通过 iOS 9 登录 FB 时打开 Safari 网页视图

iOS 8 和 9 iPad 使用 UIActivityViewController 通过 Twitter 共享对话框在 60 秒内以 viewServiceDidTerminateWithError

无法通过 xcode 7.3.1 安装 ios 9 模拟器

如何在 IOS 7 的 cordova 2.9.0 中删除状态栏?

Jenkins 生成的 ipa 无法在 iPhone 上安装(iOS 9 + XCode 7.1)