隐藏在单元格中的按钮

时间:2016-04-20 20:19:58

标签: ios swift2

我正在开发app,用户将在一个单元格中选择两张图片中的一张。我的原型单元看起来像:

enter image description here

我有

cell.rightVoteButton.addTarget(self, action: #selector(voteRightButtonPressed), forControlEvents: .TouchUpInside)

cell.leftVoteButton.addTarget(self, action: #selector(voteLeftButtonPressed), forControlEvents: .TouchUpInside)
tableView函数中的

func voteRightButtonPressed(sender:UIButton){

    print("Right Vote clicked is \(sender.tag)")
    print(self.polls[sender.tag].poll_id)

}

这样我打印了polls id和cells索引。

我想在点击特定单元格后隐藏投票按钮。 例如,如果我单击第一个单元格和左图片中的投票,我想隐藏第一个单元格上的两个按钮。我现在是单元格的索引但是如何隐藏特定单元格中的按钮。

我的自定义TableViewCell:

class CustomTableViewCell: UITableViewCell {

    @IBOutlet weak var leftImage: UIImageView!
    @IBOutlet weak var rightImage: UIImageView!
    @IBOutlet weak var userPicture: UIImageView!
    @IBOutlet weak var userName: UILabel!
    @IBOutlet weak var leftButton: UIButton!
    @IBOutlet weak var rightButton: UIButton!



    @IBOutlet weak var pollDescription: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

2 个答案:

答案 0 :(得分:2)

不是使用没有内在意义且容易混淆的标签,而是可以这样说:

func voteRightButtonPressed(sender:UIButton){
    let location = self.tableView.convertPoint(sender.bounds.origin, fromView:sender)
    let indexPath = self.tableView.indexPathForRowAtPoint(location)
    if let cell = self.tableView.cellForRowAtIndexPath(indexPath) as? CustomUITableViewCell {

    //hide views in cell and update your model to reflect vote.
    }
    print("Right Vote clicked is \(indexPath.row)")
    print(self.polls[indexPath.row].poll_id)

}

获得单元格后,您可以隐藏所需的视图,并且可以更新模型以反映刚投出的投票。

答案 1 :(得分:0)

我想你有一个包含这种类型的几个单元格的tableview,如果是这种情况,你需要一个custonTableViewCell来放置这个代码。按钮响应@IBAction,隐藏按钮并在UITableViewController中调用委托。

了解您的custonTableViewCell,就像每个单元格的viewController一样

在您的custon单元格中添加此项并指向按钮

//按钮的IBAction

@IBAction func buttonPress(sender: UIButton){
    leftButton.hidden = true
    rightImage.hidden = true
    self.delegate?.buttonPress(sender.tag)
}

在您的custon单元格类定义之前添加它

protocol CustomTableViewCellDelegate {
   func buttonPress(tag: Int)
}

以及之后:

var delegate : CustomTableViewCellDelegate?

并在你的tableviewcontroller中

class TableViewController: UITableViewController, CustomTableViewCellDelegate

和你在某个地方的新功能

func buttonPress(tag: Int){
    print(tag)
}