我希望为我在Swift中编写的游戏的用户体验添加一些最后的润色。目前我有一个gameVerViewController在游戏结束时被激活,在该屏幕上,分数和高分数会在几秒钟后显示插页式广告。
我还有一个replay
UIButton,可以展开segue并重新开始游戏。
我正在寻找的是重放按钮上的计时器,该按钮会在三秒钟后激活按钮,类似于您在插页式广告中看到的内容,您可以在与广告进行任何互动之前看到秒数倒计时对象。
---------------更新了代码
再次问好,
我已经部分地使代码工作了,UIButton
已经使用我gameOverViewController
文件中的以下代码取消选中它的可访问性框。
class GameOverViewController: UIViewController {
@IBOutlet weak var button: UIButton!
}
override func viewDidLoad() {
super.viewDidLoad()
self.button.enabled = false
NSTimer.scheduledTimerWithTimeInterval(3, target: self, selector: "enableButton", userInfo: nil, repeats: false)
//lots of code here to bring up google interstitial advert
}
func enableButton() {
self.button.enabled = true
}
按钮被正确地显示为灰色三秒钟然后变为蓝色,但是一旦点击viewController
挂起然后崩溃。该错误会导致AppDelegate
出现SIGABRT错误。这是输出字段的摘录...
20 libdyld.dylib 0x0000000105fa5145 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
该按钮是segue的一部分,一旦按下就会将ViewController
更改回GameViewController,这是GameViewController
上的代码
@IBAction func replay(segue: UIStoryboardSegue) {
}
如果没有在三秒钟后启用按钮的代码,则重放工作正常。有什么想法吗?
答案 0 :(得分:0)
您最初可以停用重播按钮,然后使用performSelector:AfterDelay
启用它。
答案 1 :(得分:0)
你可以做的是使用NSTimer倒数3秒,每秒钟,用一个剩下当前秒数的按钮替换按钮。要在此期间使按钮处于非活动状态,您可以使用小于1的alpha(出于可视目的)并禁用用户与其的交互。希望有所帮助!如果您在编写代码时需要帮助,我可以提供帮助。