无法单击UITableViewCell内的按钮?

时间:2017-04-05 07:17:55

标签: uitableview swift3 uibutton tableview tableviewcell

我正在使用storyboard创建一个UITableView,加载一些数据以推荐用户关注,并在单元格中包含一个关注按钮。

唯一的问题是,我无法点击单元格内的关注按钮。

这是我的ViewController类中TableView的代码(它不是TableViewController,它是一个包含UITableViewDelegate和UITableViewDataSource的UIViewController):

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return followRecommendations.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let followCell = tableView.dequeueReusableCell(withIdentifier: "followCell", for: indexPath) as! FollowRecommendationTableViewCell

    followCell.followButton.tag = indexPath.row
    followCell.followButton.addTarget(self, action: #selector(self.buttonTapped), for: UIControlEvents.touchUpInside)

    followCell.followRecommendationName.text = followRecommendations[indexPath.row].suggestedUserName
    followCell.followRecommendationInterests.text = followRecommendations[indexPath.row].suggestedUserTasteString

    let imageUrl = followRecommendations[indexPath.row].suggestedUserImage
    followCell.followRecomendationImage.downloadedFrom(link: imageUrl)

    return followCell
}

func buttonTapped() {
    print("Tapped")
}

这是TableViewCell类的代码。

class FollowRecommendationTableViewCell: UITableViewCell {

@IBOutlet weak var followRecomendationImage: UIImageView!
@IBOutlet weak var followRecommendationName: UILabel!
@IBOutlet weak var followRecommendationInterests: UILabel!
@IBOutlet weak var followButton: UIButton!

override func awakeFromNib() {
    super.awakeFromNib()
}

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

之前我在StackOverflow上看过这个问题,但我无法解决问题。以下是我尝试过的一些事情:

我似乎无法让它发挥作用。

是否还有其他人遇到此问题并找到解决方案?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我查了一下 - 你的代码运行正常。您可能没有为单元格上的按钮设置IBOutlet,无论是在Storyboard中,还是在单独的.xib文件中(如果使用它)。打开故事板并将单元格中的插座与按钮匹配,如下所示:

Set the outlet from your cell to the UIButton in Interface Builder