У меня button
в моем классе TableViewCell
с изображением коробки по умолчанию.Я хочу, чтобы изображение button
сменилось на другое, когда оно выбрано, однако это не работает для меня.
Это класс TableViewCell
:
class NameHeaderTableViewCell: UITableViewCell {
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var checkMarkButton: UIButton!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
func setup(model: UserModel) {
nameLabel.text = model.name
}
}
В моем ViewController
я добавил цель, чтобы изменить состояние button
при нажатии:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let userModel = Data.userModels[section]
let cell = tableView.dequeueReusableCell(withIdentifier: "nameCell") as! NameHeaderTableViewCell
cell.setup(model: userModel)
cell.checkMarkButton.addTarget(self, action: #selector(handleTap), for: .touchUpInside)
cell.enable(on: false)
if isUserEditing == true {
cell.enable(on: true)
}
return cell.contentView
}
@objc func handleTap(sender: UIButton) {
if sender.isSelected {
sender.isSelected = false
} else {
sender.isSelected = true
}
tableView.reloadData()
}
//This just enables and disables the table headers depending on if there is text in a UITextField
extension UITableViewCell {
func enable(on: Bool) {
for view in contentView.subviews {
view.isUserInteractionEnabled = on
view.alpha = on ? 1 : 0.5
}
}
}
Я также устанавливаю изображения для определенных состояний в storyboard
:
Опять же, когда в textfield
есть текст, ячейки становятся активными, однако, когда я пытаюсь нажать на button
, изображение не меняется.Я дважды проверил и даже убедился, что целевое членство было правильным, но не повезло.Спасибо за любую помощь, спасибо!