2017-07-03 31 views
1

我想检查按下按钮(他们都有标签)对现有阵列的顺序。例如,我有一个数组1-9和9按钮,我想知道用户是否按正确的顺序按下它们。如果没有,那么我会返回一个错误。这似乎很简单,但我仍然在学习,并已耗尽我的资源。提前致谢!我已经设法取得进展,并使按钮打印到控制台上的标签,但似乎发生小错误似乎让他们都在一个阵列中,他们都是分开打印。如何检查对现有阵列的按下按钮的顺序Swift 3.0

@IBAction func onePressed(_ sender: Any) { 
     print("cell 1 was pressed while it showed \(shuffledArray[0])") 
    } 

这现在已经解决了!感谢所有的帮助!这是工作代码!

@IBAction func onePressed(_ sender: UIButton) { 
    print("cell 1 was pressed while it showed \(shuffledArray[0])") 
} 

然后

if sender.tag == shuffledArray[0] { 
    // the button's tag is the first one in the array 
} 

-

@IBAction func pressed(_ sender: UIButton) { 
    //print("cell was pressed while it showed \(shuffledArray[0])") 

    switch(sender.tag){ 

    case 1: 
     order.add(sender.tag)//adding to nsmutable array use add or at a specific index use insert 
     print(order) 
     self.oneLabel.backgroundColor = UIColor.white 

    case 2: 
     order.add(sender.tag) 
     print(order) 
     self.twoLabel.backgroundColor = UIColor.white 

    case 3: 
     order.add(sender.tag) 
     print(order) 
     self.threeLabel.backgroundColor = UIColor.white 

    case 4: 
     order.add(sender.tag) 
     print(order) 
     self.fourLabel.backgroundColor = UIColor.white 

    case 5: 
     order.add(sender.tag) 
     print(order) 
     self.fiveLabel.backgroundColor = UIColor.white 

    case 6: 
     order.add(sender.tag) 
     print(order) 
     self.sixLabel.backgroundColor = UIColor.white 

    case 7: 
     order.add(sender.tag) 
     print(order) 
     self.sevenLabel.backgroundColor = UIColor.white 

    case 8: 
     order.add(sender.tag) 
     print(order) 
     self.eightLabel.backgroundColor = UIColor.white 

    case 9: 
     order.add(sender.tag) 
     print(order) 
     self.nineLabel.backgroundColor = UIColor.white 

    default : 
     break 
    } 

    if order.count == 9 { 
     print(order.count) 
     let indexOfShuffled = [1,2,3,4,5,6,7,8,9] 
     let combined = zip(shuffledArray, indexOfShuffled).sorted {$0.0 < $1.0} 
     print(combined) 

     // use map to extract the individual arrays 
     let sortedIndexOfShuffled = combined.map {$0.1} 
     let sortedShuffledArray = combined.map {$0.0} 

     print(sortedIndexOfShuffled) // "[1.2, 1.5, 2.4, 10.9, 20.0]" 
     print(sortedShuffledArray) // "[1, 3, 0, 0, 2]" 

     if order == sortedIndexOfShuffled as! NSMutableArray{ 
      self.oneLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.twoLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.threeLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.fourLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.fiveLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.sixLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.sevenLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.eightLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
      self.nineLabel.setImage(UIImage(named: "tick.png"), for: .normal) 
     }else{ 
      self.oneLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.twoLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.threeLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.fourLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.fiveLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.sixLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.sevenLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.eightLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
      self.nineLabel.setImage(UIImage(named: "cross.png"), for: .normal) 
     } 
    } 
} 

回答

0

开始用这个代替(如果不是假设你在这里使用一个按钮,用你的实际类型的任何变化的UIButton)你可能想保留一个索引(而不是使用0以上)

添加属性

var buttonPressedIndex = 0 

然后

if sender.tag == shuffledArray[buttonPressedIndex] { 
    // the button's tag is the next one in the array 
    buttonPressedIndex += 1 // go to next button in array 
} else { 
    // show an error 
}