2016-05-18 5 views
0

チェックボックスの機能を持つリストを作成しています。ここでは、チェック記号は空のチェックボックスの子です。 touchesBegan:では、チェックボックスは、チェックボックスを押すたびに、非表示から非表示に戻り、戻る必要があります。コードは次のようになります。隠しノードがchildnodewithnameで表示されない

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    if let touch = touches.first { 
     location = touch.locationInNode(self) 
     for node in self.nodesAtPoint(location) { 
      if node.childNodeWithName("checkSymbol")?.hidden == true { 
       node.childNodeWithName("checkSymbol")?.hidden = false 
      } else if childNodeWithName("checkSymbol")?.hidden == false { 
       node.childNodeWithName("checkSymbol")?.hidden = true 
      } 
     } 
    } 
} 

問題がchildNodeが(checkSymbolノード)それが隠されていたときに.nodesAtPoint()方法によってピックアップされていないです。これが私が上記の.childNodeWithName()アプローチを使用して回避策を試みた理由ですが、ボックスはその後の接触についてチェックされたままです。誰にもこれを修正する方法の提案がありますか?

答えて

1

nodesAtPointで隠れノードを取得する場合は、いつでもの実装を非表示に変更することができます。

node.zPosition = -1を使用することもできます。背景ノードがz配置0であると仮定すると、後で非表示にすることができます。

+0

ありがとう、cocojoe。それは良い代案です –

関連する問題