我正在开发app,用户将在一个单元格中选择两张图片中的一张。我的原型单元看起来像:
我有
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
}
}
答案 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)
}