ios - SKTransition crossFadeWithDuration 在 Swift 中无法正常工作

标签 ios xcode swift sprite-kit nsnotificationcenter

我正在尝试使用 NSNotificationCenter 在两个 SKScenes 之间进行转换,但由于某些原因,当我从 SKScene 使用 NSNotificationCenter 时,crossFadeWithDuration 无法正常工作。

我所说的“不正确”是指当前 SKScene 将在新 SKScene 开始融入之前开始淡化为黑色,有点像常规的 fadeWithDuration 方法。

这是我的代码:

在我的 ViewController 中,我将其发布到我的 viewDidLoad 中:

    let crossFade = SKTransition.crossFadeWithDuration(5.0)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "bubblePop:", name:"openBubblePop", object: nil)

我在我的 SKScene 中调用它:

func loadGame(sender: String) {
    NSNotificationCenter.defaultCenter().postNotificationName("openBubblePop", object: self)
}

这是它在我的 ViewController 中运行的 block :

func bubblePop(_:NSNotificationCenter) {
    skView.presentScene(BubblePop(size: skView.bounds.size), transition: crossFade)
}

我已尝试通过 UIButton 调用相同的 presentScene 行,并且转换按预期进行。有人知道为什么会这样吗?

更新 我已就此问题向 Apple 提交了错误报告。 CrossFadeWithDuration 仅在 iOS 8 上运行时才能正常工作,在 iOS 7 和 9 上运行不正确。

最佳答案

为什么要使用 NSNotificationCenter?来自您的 SKScene 电话:

self.view?.presentScene(BubblePop(size: (self.view?.bounds.size)!), transition: SKTransition.crossFadeWithDuration(5.0))

关于ios - SKTransition crossFadeWithDuration 在 Swift 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33770340/

相关文章:

ios - 标题不丢失时在 xcode 中出现错误 "Undefined symbols for architecture i386"

objective-c - 让 GADInterstitialAd 在 iPad 上更频繁地加载 : possible?

ios - 为什么我们可以从 didSet 属性观察者返回

ios - 仅当用户滚动时才将数据拉入 CollectionView 中?

swift - 覆盖 Swift 3 中的属性

android - 如何在angularjs/Phonegap(iOS,Android,Chrome)中持久存储

ios - 在 iOS 中使用 soap 在 https websrevice 中发送和接收数据 - Obj-C

ios - 如果图像被另一个应用程序(如照片、safari 等)复制,我如何从 UIPasteboard 获取图像的原始数据。

iOS - 未设置 WebView cookie

xcode - 为 TableView 创建 IBOutlet 不起作用