使用和不使用 UIGestureRecognizer 调用函数
Call function with and without UIGestureRecognizer
作为努力学习的一部分,我正在创建一个简单的游戏 Swift。在一轮结束时,我使用了 UIGestureRecognizer
来清除 modal/hudview,在清除时,它也清除了游戏板。我也想在 restart()
函数中调用 clearBoard(recognizer: UITapGestureRecognizer)
函数,但由于 clearBoard()
.[=18 的 UITapGestureRecognizer
参数的必要性,所以不能=]
如何在手势识别器和 restart
函数中使用 clearBoard
函数?简化代码如下:
class GameViewController: UIViewController {
// Setup views etc.
func endGame() {
let tapRec = UITapGestureRecognizer()
if winner == 1 {
self.playerScore++
self.playerScoreLabel.text = String(self.playerScore)
let hudView: HudView = HudView.hudInView(self.view, message: "Player won!", animated: true)
tapRec.addTarget(self.view, action: "clearBoard")
self.view.addGestureRecognizer(tapRec)
} else {
self.computerScore++
self.computerScoreLabel.text = String(self.computerScore)
let hudView: HudView = HudView.hudInView(self.view, message: "Computer won!", animated: true)
}
}
func restart() {
// Restart
// Problem here
self.clearBoard()
}
func clearBoard(recognizer: UITapGestureRecognizer) {
// Clear board
}
}
您不必将识别器设置为参数。这只是苹果为您提供的一种可能性。您也可以不传递任何参数:
func clearBoard(){
//Clear board
}
它也适用于手势识别器。您无需更改手势代码中的任何内容:
tapRec.addTarget(self.view, action: "clearBoard")
完全没问题。
作为努力学习的一部分,我正在创建一个简单的游戏 Swift。在一轮结束时,我使用了 UIGestureRecognizer
来清除 modal/hudview,在清除时,它也清除了游戏板。我也想在 restart()
函数中调用 clearBoard(recognizer: UITapGestureRecognizer)
函数,但由于 clearBoard()
.[=18 的 UITapGestureRecognizer
参数的必要性,所以不能=]
如何在手势识别器和 restart
函数中使用 clearBoard
函数?简化代码如下:
class GameViewController: UIViewController {
// Setup views etc.
func endGame() {
let tapRec = UITapGestureRecognizer()
if winner == 1 {
self.playerScore++
self.playerScoreLabel.text = String(self.playerScore)
let hudView: HudView = HudView.hudInView(self.view, message: "Player won!", animated: true)
tapRec.addTarget(self.view, action: "clearBoard")
self.view.addGestureRecognizer(tapRec)
} else {
self.computerScore++
self.computerScoreLabel.text = String(self.computerScore)
let hudView: HudView = HudView.hudInView(self.view, message: "Computer won!", animated: true)
}
}
func restart() {
// Restart
// Problem here
self.clearBoard()
}
func clearBoard(recognizer: UITapGestureRecognizer) {
// Clear board
}
}
您不必将识别器设置为参数。这只是苹果为您提供的一种可能性。您也可以不传递任何参数:
func clearBoard(){
//Clear board
}
它也适用于手势识别器。您无需更改手势代码中的任何内容:
tapRec.addTarget(self.view, action: "clearBoard")
完全没问题。