Swift SafariViewController 动画
Posted
技术标签:
【中文标题】Swift SafariViewController 动画【英文标题】:Swift SafariViewController animation 【发布时间】:2016-08-04 11:42:07 【问题描述】:在我的 SpriteKit 游戏中,所有游戏都是横向的,我正在展示一个 SafariViewController。
func showSafariViewController(forURL url: String)
guard let validURL = NSURL(string: url) else return
let safariViewController = SFSafariViewController(URL: validURL)
safariViewController.delegate = self
// present safariViewController
开/关动画来自右侧。
当使用 Facebook SDK 登录 Facebook 时,看起来他们也在使用 SafariViewController,并且它从底部动画进/出。
有没有办法我也可以做到这一点?
【问题讨论】:
【参考方案1】:FacebookSDK 的行为有点棘手:他们将 SafariVC 添加到另一个视图控制器 (containerVC),然后呈现 containerVC,而不是 SafariVC。
我写了一个实现这种行为的例子(不确定自动调整掩码,可能你需要使用自动布局,但这取决于你):
let containerVC = UIViewController()
let url = URL(string: "https://yandex.ru")!
let safariVC = SFSafariViewController(url: url)
containerVC.addChildViewController(safariVC)
safariVC.view.autoresizingMask = [ .flexibleWidth, .flexibleHeight ]
safariVC.view.frame = containerVC.view.frame
containerVC.view.addSubview(safariVC.view)
safariVC.didMove(toParentViewController: containerVC)
self.present(containerVC, animated: true, completion: nil)
【讨论】:
非常感谢。明天我会试一试,然后报告。我看到的另一个堆栈问题以相同的方式执行,但他们将其添加到 UINav 栏中,而不是 viewController,顶部栏设置为隐藏。这最初似乎可行,但我注意到如果您快速连续打开和关闭 safari VC,您可以获得没有按钮/界面的白屏。我永远无法复制它只是正常添加它。我尝试与 VC 合作并让你知道。再次感谢 对您有帮助吗? 抱歉回复晚了。我在度假,直到今天才有时间。您的回答效果很好,我也无法复制没有 UI 的空白 Safari 页面的问题。再次感谢您的帮助。以上是关于Swift SafariViewController 动画的主要内容,如果未能解决你的问题,请参考以下文章