Ios 未调用UITableViewCell选择器中的UIButton

Ios 未调用UITableViewCell选择器中的UIButton,ios,swift,Ios,Swift,我在从故事板添加的UITableViewCell中有一个UIButton。当我按下按钮时,应调用操作: @IBAction func modifyFavouriteStatus(sender: UIButton) { favouriteBool = false var emptyHeart = UIImage(named: "Red_Heart_Empty_x23px.png")?.imageWithRenderingMode(.AlwaysTemplate) favou

我在从故事板添加的UITableViewCell中有一个UIButton。当我按下按钮时,应调用操作:

@IBAction func modifyFavouriteStatus(sender: UIButton) {
    favouriteBool = false
    var emptyHeart = UIImage(named: "Red_Heart_Empty_x23px.png")?.imageWithRenderingMode(.AlwaysTemplate)
    favouriteButton.setImage(emptyHeart, forState: UIControlState.Normal)
}
但是,将调用方法didSelectRowatineXpath。我希望只有当我按下电池本身,而不是按钮时,才会调用它

在按钮上启用p.S.用户交互

编辑:


简单地说,UITableViewCells有一个contentView。这可以并且将被放置在自定义表格视图单元格中其他视图的前面,以便拾取触摸和检测单元格选择。这样做可能会阻止对其后面任何视图的接触。通过执行cell.contentView.addSubviewcell.FavoriteButton修复了此错误


请注意,在我的故事板中,FavoriteButton已经显示为contentView的子视图,因此这可能会导致您认为它是contentView的子视图。由于某些原因,它不是。

请显示您正在设置按钮选择器的位置。它是从用户界面到单元格子类的连接是否使用自动布局?是的,在我的sotyboard@Alessandro请检查一下按钮的宽度。由于未满足的约束条件,可能为零。然后发布你手机的屏幕截图
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("SpotlightCell", forIndexPath: indexPath) as! SpotlightCell

    let userObject = self.objectArray[indexPath.section] as! PFUser
    cell.passedUser = userObject

    if userObject["profileImage"] != nil{
    let userImageFile = userObject["profileImage"] as! PFFile
    let url = NSString(string:userImageFile.url!)
    cell.profileImage.sd_setImageWithURL(NSURL(string: url as String), placeholderImage:UIImage())
    }

    if userObject["username"] != nil{
        let username = userObject["username"] as! String
        cell.labelName.text = username
    }

    //return cell
    return cell
}
class SpotlightCell: UITableViewCell {
    @IBOutlet weak var profileImage: UIImageView!
    @IBOutlet weak var labelName: UILabel!
    @IBOutlet weak var favouriteButton: UIButton!

    var passedUser : PFUser!
    var label : UILabel?
    var favouriteBool = false

    override func awakeFromNib() {
        super.awakeFromNib()
        self.selectionStyle = UITableViewCellSelectionStyle.None
    self.contentView.backgroundColor = UIColor.clearColor()
        self.backgroundColor = UIColor.clearColor()
    }

    ...

     //the IBAction was here before
}