ios - 如何区分tableviewcell点击事件中的button和tableviewcell点击事件

标签 ios swift uitableview button tableview

我在 tableviewcell 中有一个按钮。我想分别捕捉按钮点击事件和单元格点击事件。当按钮被点击时,会引发button-click事件。当单元格的其他部分被点击时,会引发cell-click事件。

虽然问题是当我点击按钮时,按钮点击事件 share 没有执行,但是单元格选择事件被执行。

xib file the button

import UIKit

class ArticleTableViewCell: UITableViewCell {

    @IBOutlet weak var time: UILabel!
    @IBOutlet weak var digest: UILabel!
    @IBOutlet weak var share: UIButton!

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

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

        // Configure the view for the selected state
    }

    @IBAction func share(_ sender: Any) {
        print("share")
    }
}

最佳答案

可以通过delegate方法didSelectRowAtIndexPath获取整个cell的点击事件。您必须将 TableView 的委托(delegate)设置为文件的所有者( Controller )。

为了获得按钮的点击事件,我总是采用以下变通方法。将标记添加到按钮作为 indexpath.row。将目标添加到按钮。在选择器函数中,您可以使用 sender.tag 获取单击了哪个单元格按钮。

关于ios - 如何区分tableviewcell点击事件中的button和tableviewcell点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48397595/

相关文章:

iphone - 滑动到另一个元素时 UIAccessibilityAnnouncementDidFinishNotification 不触发

arrays - 如何在 swift 中初始化一组空数组?

ios - Swift 上的地理编码标记

ios - 在 Swift 中以编程方式定位(Twitter Digits 的)按钮

ios - 使用 sender.tag 时删除 TableView 中的行

ios - 如何使用 Sprite Kit 在 2D 游戏中模拟 z 轴的重力

ios - 在两个或多个 pubnub channel 上发布相同的负载

ios - 如何根据Apple ID在iOS中检查用户是否已购买或未使用应用内购买

ios - 图像未立即在表格 View 中加载

ios - 在我的自定义表格 View 单元格中添加 CAGradientLayer 的正确位置是什么?