【问题标题】:Swift SafariViewController animationSwift SafariViewController 动画
【发布时间】: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,并且它从底部动画进/出。

有没有办法我也可以做到这一点?

【问题讨论】:

    标签: swift landscape sfsafariviewcontroller


    【解决方案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 页面的问题。再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多