阻止UIImageView被多次触摸

时间:2016-12-21 18:30:59

标签: ios swift cocoa-touch uiimageview

我是swift的新手,正在制作一个tic tac toe游戏,我目前大部分功能正在工作,但还是无法弄清楚如何阻止一个方块不止一次被触摸。下面的代码就是我如何认识到目前为止的接触。

2 个答案:

答案 0 :(得分:1)

通常使用iOS,您可以让他们为您完成工作。在您的情况下,我会使用A课程并对其进行点击操作。

因此,只需打开故事板并用UIButton个对象替换UIImageView个对象。然后在屏幕截图中标记的字段右侧将图像设置为您开始的任何内容(来自您的代码,我猜它的类似UIButton)。

button - image - attribute

重复所有九个TicTacToe按钮。

Ctrl-Track从第一个按钮进入控制视图并设置操作。操作窗口应如下所示:

button action to be reused

这应该为您的控件视图类添加一个函数,如:

Picture1.png

其中@IBAction func button(_ sender: UIButton) { // All your game response goes here } 是实际按下的按钮。

现在ctrl-跟踪所有其他按钮到同一个功能。无论按下哪个按钮,都会调用该函数。使用sender在右侧按钮上设置正确的图像。

您现在可以使用所有代码填充该函数。我会除了游戏状态的一些表示 - 例如一个2dim数组 - 保持哪个用户点击了哪个字段,并且可以用来检查,如果一个用户确实赢了。

答案 1 :(得分:0)

如果你只是添加一个标志怎么办?

var isTouched = false
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    let Touch = event?.allTouches!.first!

    if topleft.frame.contains((Touch?.location(in: self.view))!) && !self.isTouched{
    self.isTouched = true
        if currentPlayer == 1 {
            topleft.image = #imageLiteral(resourceName: "Picture2.png")
            currentPlayer = 2
            playerturn.text = "Player 2, it's your turn!"
            playerturn.textAlignment = .center
        }
        else {
            topleft.image = #imageLiteral(resourceName: "Picture3.png")
            currentPlayer = 1
            playerturn.text = "Player 1, it's your turn!"
            playerturn.textAlignment = .center
        }
    }