【发布时间】:2017-08-17 02:32:54
【问题描述】:
我阅读了很多关于 SFSafariViewController 的文章,我相信它在 iOS 应用程序中提供了出色的功能。但是,当我加载我的 SFSafariViewController 时,我故意隐藏导航栏,因为我希望左上角有一个自定义固定按钮来关闭视图控制器。
override func viewDidAppear(_ animated: Bool) {
let safariViewController = PSSafariViewController(url: URL(string: blogUrl)!, entersReaderIfAvailable: true)
present(safariViewController, animated: false) {
var frame = safariViewController.view.frame
let OffsetY: CGFloat = 44
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
let btn: UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50))
btn.backgroundColor = UIColor.green
btn.setTitle("Click Me", for: .normal)
btn.addTarget(self, action: #selector(PSBlogViewController.buttonAction), for: UIControlEvents.touchUpInside)
btn.tag = 1 // change tag property
btn.isOpaque = true
safariViewController.view.addSubview(btn)
safariViewController.view.bringSubview(toFront: btn)
print(btn.description)
}
}
如您所见,我更改了框架,使顶部的栏不可见。该代码运行良好。但是当我尝试添加 UIButton 时,它会短暂出现,然后在我运行应用程序时被覆盖。这是一个使用 SFSafariViewController 的简单博客阅读器应用程序。也许 Apple 不希望开发人员到处乱跑,但非常感谢任何使按钮保持可见的解决方案或变通方法!
这里是关于按钮的信息:0x7f950b618db0;帧 = (100 400; 100 50);标签 = 1;层=CALayer:0x60000023ab60
【问题讨论】: