2016-12-21 16 views
0

私は速くて新しく、チックタックのつま先ゲームを作成していますが、私は現時点で機能しているほとんどの機能を持っていますが、 1回以上タッチされることから。以下のコードは、私がこれまでのタッチをどのように認識したかです。UIImageViewを2回以上タッチしないでください

+0

UIImageViewの場合、画像にタグを使用できます。タグなし0、タッチ1、タグを確認 –

+0

申し訳ありませんEuguene、UIImageViewがタグを使用して再度触れるのを防ぐ方法がわからないのですか? – harryb94

+0

最初にタッチすると、tag = 1になります。もう一度タッチすると、このタッチをスキップした場合にタグが1であるかどうかを確認します。あなたが何を正しくしているのか分かっているなら、これはそのトリックを行うべきです。 –

答えて

1

通常、iOSを使用すると、あなたに仕事をさせることができます。あなたの場合は、UIButtonクラスを使用して、タップアクションを入力します。

ストーリーボードを開き、UIImageViewオブジェクトをUIButtonオブジェクトに置き換えてください。その後、スクリーンショットにマークされたフィールドの右手に、あなたが始めるもの(コードからはPicture1.pngのようなものです)にイメージを設定します。すべての9三個の並べボタンの

button - image - attribute

繰り返します。

Ctrlキーを押しながら最初のボタンからコントロールビューに移動し、アクションを設定します。

senderが実際に押されたボタン、ある
@IBAction func button(_ sender: UIButton) { 
    // All your game response goes here 
} 

:これは以下のように、あなたのコントロールビュークラスに機能を追加する必要があります

button action to be reused

:処置ウィンドウには、次のようになります。

ここでは、他のすべてのボタンをCtrlキーを押しながら同じ機能に移動します。どのボタンが押されたかにかかわらず、この関数が呼び出されます。 senderを使用して、右の画像を右のボタンに設定します。

これで、すべてのコードで関数を満たすことができます。私は、ゲームのステータスの表現を除きます。 2dim配列 - 1人のユーザーが勝った場合、どのユーザーがどのフィールドをクリックしてチェックに使用できるかを保持します。

+0

あなたの答えは@jboiに感謝しますが、このプロジェクトではUIImageViewのものを使用しなければならないと言われました – harryb94

+1

この場合、2つの方法があります: (1)ImageViewsを熟知している人は、正しく。 そして(2)方法はストーリーボードに1つの中間ステップを使用することです:各ImageViewとCtrlに「TapRecognizer」を追加することです(これは私の方法ですが、私は古く、この方法では経験が豊富です)それらのアクションをビューコントローラ内の関数に追跡します。残りは同じままです。 – jboi

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 
     } 
    } 
+0

私はこれを試してみましたが、どちらもフェデリコは動作しませんでした。私はまだ左上の四角形を何度もクリックすることができました。 – harryb94

関連する問題