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 动画的主要内容,如果未能解决你的问题,请参考以下文章

Swift入门系列--Swift官方文档(2.2)--中文翻译--About Swift 关于Swift

swift 示例BS swift.swift

swift swift_bug.swift

ios 整理(一)swift和oc的区别

swift swift_extension5.swift

swift swift_optional4.swift