[英]Hiding one button out of three buttons using iOS Swift
我有一个大约5个单元格(行)的UITableView。 每个单元格(行)都添加了三个UIButton作为各自单元格的子视图。
Row1: Button1 Button2 Button3 //所有这些按钮都具有tag = row_number = 1
第2行: Button1 Button2 Button3 //所有这些按钮都具有tag = row_number = 2
Row3: Button1 Button2 Button3 //所有这些按钮都具有tag = row_number = 3
第4行: Button1 Button2 Button3 //所有这些按钮都具有tag = row_number = 4
注意:所有行的Buttons1连接到相同的IBAction。 类似地,所有行的Buttons2连接到相同的IBAction。 等等...我完全能够检测到某个单元格中按下了哪个按钮。 我为此使用标签。
我要执行以下操作:
目前,我可以隐藏第一个按下的按钮,但是如果之后再按下同一行中的另一个按钮,则无法将其恢复。
请指导我如何执行此操作。
提前致谢。
由于您的问题只会一次影响单个单元格,因此我们可以专注于一个单元格。
您应该使用UITableViewCell
子类,该子类保留对其按钮的引用,并且是其操作的target
。
因此,该子类可以管理所有与视图相关的界面更改,并且封装得很好。
然后,您可以使用委派将动作传播到视图控制器并处理实际逻辑。
编辑
关于第二个问题,通过此设置,可以通过在每次按下时将每个按钮的索引附加到[Int]
上来轻松跟踪单元格中按钮的按下顺序。
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")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.