swift - 使用和不使用 UIGestureRecognizer 的调用函数

标签 swift ios8 uigesturerecognizer

我正在创建一个简单的游戏,作为学习 Swift 的一部分。在一轮结束时,我使用 UIGestureRecognizer 来清除模态/hudview,清除后也会清除游戏板。我也想在 restart() 函数中调用 clearBoard(recognizer: UITapGestureRecognizer) 函数,但由于 的必要性而无法调用clearBoard() 的 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 的调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28729504/

相关文章:

ios - 确定是否设置了对照片库的访问 - PHPhotoLibrary

ios - 捕获并记录 UIView 上的触摸事件

ios - 将视频及其缩略图保存和检索到应用程序的目录

cocoa - Swift - 选择文件时发出警告(Cocoa)

swift - 如何在 ios Swift 中创建类似于 50 英里半径的 MKCoordinate 区域?

swift - iAd (ADBannerView) 工作,但在 Swift 中有奇怪的系统输出

ios - 如何从Firebase以值的降序获取数据?

swift - 使用Swift录制和播放视频并将视频发送到服务器

ios - 用于双击的 UITapGestureRecognizer 问题

xcode - 按钮上方的事件指示器会阻止点击识别