Я пытаюсь сделать подобную кнопку в каждой из моих ячеек таблицы. Когда он будет нажат, кнопка изменится на «в отличие от». Я смог сделать это, создав IBOutlet в моем подклассе и IBAction Method в моем классе tableviewcontroller, используя sender.setTitle («в отличие», forState: UIControlState.Normal). Но когда я нажимаю на нее, метод превращает кучу других кнопок tableviewcell в «непохожий», по сути, дублируя поведение одной ячейки. Способ, которым он это делает, заключается в том, что он меняет каждую другую ячейку, поэтому, если я нажму кнопку «как» из двух последовательных ячеек, все ячейки в представлении таблицы превратятся в «непохожие». Вот мой код tableViewController:Реализация подобной кнопки в tableviewCell в swift
class TableViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 30
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as TableViewCell
cell.tag = indexPath.row
cell.like.tag = indexPath.row
cell.like.addTarget(self, action: "handleLikes:", forControlEvents: .TouchUpInside)
return cell
}
@IBAction func handleLikes(sender: AnyObject){
println(sender.tag) // This works, every cell returns a different number and in order.
sender.setTitle("Pressed", forState: UIControlState.Normal)
}
И вот мой код класса TableViewCell:
class TableViewCell: UITableViewCell {
@IBOutlet weak var like: UIButton!
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
}
}
Кроме того, этот не имеет никакого отношения, но если кто-то читает это может сказать мне, как я мог бы улучшить мой стиль и/или ясность кода, я был бы признателен за это.
Спасибо, что работали. Я бы поднял голову, но у меня нет репутации. –
@HidekazuShidara проблем нет. Рад, что смог помочь! – Caleb