将此代码放入
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)}
这种方法的问题仅在于覆盖层保留在屏幕上,但是如果您能找到一个不错的图像,那就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)