使用iOS Swift

时间:2016-02-21 15:24:25

标签: ios swift algorithm

我有一个UITableView,大约有5个单元格(行)。每个单元格(行)都添加了三个UIButton作为相应单元格的子视图。

Row1: Button1 Button2 Button3 //所有这些按钮都有tag = row_number = 1

第2行: Button1 Button2 Button3 //所有这些按钮都有tag = row_number = 2

第3行: Button1 Button2 Button3 //所有这些按钮都有tag = row_number = 3

Row4: Button1 Button2 Button3 //所有这些按钮都有tag = row_number = 4

注意: 所有行的Buttons1都连接到同一个IBAction。 同样的, 所有行的按钮2都连接到相同的IBAction。等...... 我完全能够检测到单元格中按下了哪个按钮。我正在使用标签。

我想执行以下操作:

  1. 如果从一行按下某个按钮,它应该在按下时隐藏,而同一行中的所有其他按钮应保持显示。一段时间后,如果从同一行按下另一个按钮,则应该隐藏新按下的按钮,同时应将之前隐藏的按钮带回视图。
  2. 目前,我可以隐藏按下的第一个按钮,但如果之后按下同一行中的另一个按钮,则无法将其恢复。

    1. 这也可以跟踪先前在同一行中按下的按钮吗?
    2. 请指导我如何实现这一点。

      提前致谢。

1 个答案:

答案 0 :(得分:0)

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
 {
  let cell = self.tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomCell



  // add a line for each one of the buttons
   cell.btn1.addTarget(self, action: "handleButtonPressed:", forControlEvents: .TouchUpInside)
   cell.btn2.addTarget(self, action: "handleButtonPressed:", forControlEvents: .TouchUpInside)
   cell.btn3.addTarget(self, action: "handleButtonPressed:", forControlEvents: .TouchUpInside)
   cell.btn4.addTarget(self, action: "handleButtonPressed:", forControlEvents: .TouchUpInside)


   return cell
  }

   @IBAction func handleButtonPressed(sender:UIButton!)
 {

 switch sender.tag {

   let button = sender as! UIButton
   let view = button.superview!
   let cell = view.superview as! custom cell
  // cell.btn1  - will get here 
  //cell.btn2 - will get here
  // do based on what on button action hide or show
  case 0:
  print(sender.tag)

  case 1:
  print(sender.tag)
  case 2:
  print(sender.tag)
  case 3:
  print(sender.tag)

    default:
    print("Tag was not found")
   }
 }