我在让按钮在 Swift 的 tableview 单元格中工作时遇到问题。我在这里和周围的其他地方查看了几种解决方案,但似乎没有任何效果。我可能错过了一件让它正常工作的简单事情。
这是细胞:
import UIKit
class AddMealCell: UITableViewCell {
@IBOutlet weak var dislikeButton: UIButton!
@IBOutlet weak var likeButton: UIButton!
@IBOutlet weak var familyMemberLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
func configureCell(member: FamilyMembers) {
dislikeButton.tintColor = UIColor.gray
likeButton.tintColor = UIColor.green
self.familyMemberLabel.text = member.name
}
}
这是主要 VC 中的表视图方法:
extension AddMealViewController: UITableViewDelegate, UITableViewDataSource{
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return familyMembers.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "AddMealCell", for: indexPath) as? AddMealCell else {return UITableViewCell()}
let member = familyMembers[indexPath.row]
cell.configureCell(member: member)
cell.likeButton.tag = indexPath.row
cell.likeButton.addTarget(self, action: #selector(likeButtonDidTap(sender: )), for: .touchUpInside)
return cell
}
@objc func likeButtonDidTap(sender: UIButton) {
print("Like Button Tapped")
}
}
一切如常,但likeButton不可选(我还没有设置dislike)。我在 viewDidLoad 中设置了 tableview.delegate 和 tableview.datasource。不知道我还会错过什么。