TicTacToe如何重置containerView内容?

时间:2017-05-09 20:40:13

标签: ios swift

我需要一些帮助。我试着学习......一些事情和练习,但我无法管理这个功能。

我有这个功能创建容器视图:

    func createGameView() {
    let containerView = UIView()
    containerView.frame = CGRect(x: 0,
                                 y: self.screenHeight * 0.4,
                                 width: screenWidth,
                                 height: screenHeight * 0.6)

    containerView.backgroundColor = UIColor(red:0.99, green:0.13, blue:0.00, alpha:1)
    self.view.addSubview(containerView)

之后我有一个函数将用9个方块填充容器视图

    func createGridView( _ container : UIView) {

    let buttonWidth = container.frame.size.width / 3

    let buttonHeight = container.frame.size.height / 3

    for i in [0,1,2] {
        for j in 0...2 {
        let button = UIButton(frame:
        CGRect( x : buttonWidth * CGFloat (i),
                y :buttonHeight * CGFloat (j),
                width : buttonWidth,
                height : buttonHeight ))
    button.backgroundColor = UIColor.init(colorLiteralRed: 0.1, green: 0.89, blue: 0.05, alpha: 1)
    button.layer.borderColor = UIColor.black.cgColor
    button.layer.borderWidth = 1.0
        container.addSubview(button)
            button.addTarget(self, action: #selector(GameViewController.addGameValue(sender:)), for: .touchUpInside)
            button.tag = i + 3 * j
            self.gameButtons.append(button)
      }
    }
}

我有一个名为RESET的按钮

    var resetButton = UIButton(frame:
        CGRect(x: Double(containerView.frame.size.width  - 100),
               y: Double(containerView.frame.size.height - 60),
               width: 60,
               height: 40.0)
        )

    resetButton.setTitle ("Reset", for: UIControlState.normal)
    resetButton.setTitleColor(UIColor.black, for: UIControlState.normal)
    resetButton.setTitleColor(UIColor.white, for: .highlighted)
    resetButton.layer.borderWidth = 1.0
    resetButton.layer.borderColor = UIColor.black.cgColor
    resetButton.layer.cornerRadius = 5.0

    resetButton.addTarget(self, action: #selector(GameViewController.resetGame), for: UIControlEvents.touchUpInside)

    containerView.addSubview(resetButton)

这是我遇到问题的地方:(

func resetGame (sender: UIButton) {  
    // .addTarget(self, action: #selector(self.createGameView), for: .touchUpInside)
   print(" reset me ")
   // .addTarget(self, action: #selector(GameViewController.resetGame), for: .touchUpInside)

}

任何人都可以告诉我为什么没有人不会重置价值?是一个tic tac toe游戏,并且放了一些x和0后我想将gridView恢复到初始状态。不知道怎么做。

1 个答案:

答案 0 :(得分:0)

在调用createGridView之后,您已经拥有了所有需要添加到视图中的按钮,因此在重置时您只需重置按钮状态,清除任何分数/点并准备开始试。

func resetGame() {
   // reset any scores, colors etc
   for button in self.gameButtons {
       button.setTitle ("", for: UIControlState.normal)
       button.backgroundColor = UIColor.init(colorLiteralRed: 0.1, green: 0.89, blue: 0.05, alpha: 1)
   }
}
相关问题