栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SFSafariViewController:隐藏导航栏

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SFSafariViewController:隐藏导航栏

将此代码放入

viewDidAppear:

let safariViewController = SFSafariViewController(URL: url)presentViewController(safariViewController, animated: true) {    var frame = safariViewController.view.frame    let OffsetY: CGFloat  = 64    frame.origin = CGPoint(x: frame.origin.x, y: frame.origin.y - OffsetY)    frame.size = CGSize(width: frame.width, height: frame.height + OffsetY)    safariViewController.view.frame = frame}

要隐藏状态栏,

View controller-based status barappearance
YES
在info.plist文件中将其设置为并将其插入到视图控制器中。

override func prefersStatusBarHidden() -> Bool {    return true}

警告
:我建议您不要使用SFSafariViewController进行全屏查看,因为无法重新加载(因为UINavigationBar中有重新加载按钮)。如果请求失败,它将使应用程序无用。而是选择带有自定义工具栏的全屏WKWebView。

更新 :为避免隐藏重新加载按钮,只需在SFSafariViewController中的完成按钮上方添加一个view /
imageView,并使该按钮不可见或至少不可应用。

presentViewController(svc, animated: true) {    let width: CGFloat = 66    let x: CGFloat = self.view.frame.width - width    // It can be any overlay. May be your logo image here inside an imageView.    let overlay = UIView(frame: CGRect(x: x, y: 20, width: width, height: 44))    overlay.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5)    svc.view.addSubview(overlay)}

这种方法的问题仅在于覆盖层保留在屏幕上,但是如果您能找到一个不错的图像,那就可以了。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436442.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号