我正在将 TapGestureRecognizer 添加到自定义 TableViewCell 处的 UIImageView,但它没有调用其操作。当我点击图像时,它会触发 tableview 的 didSelectRowAt 委托方法。我没有使用任何故事板或 .xib。我已经使用通过 .xib 创建的 UI 完成了一千次,没有任何问题,但我不明白为什么以编程方式这不起作用。任何想法?
在我的自定义 TableViewCell 处:
var favButton = UIImageView()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
addSubview(favButton)
configureFavButton()
}
func set(stock: Stock) {
self.stock = stock
favButton.image = UIImage(systemName: "heart.fill")?.withTintColor(.black, renderingMode: .alwaysOriginal)
}
func configureFavButton() {
// Creating constraints using SnapKit
favButton.snp.makeConstraints { make in
make.trailing.equalToSuperview().inset(10)
make.centerY.equalToSuperview()
make.height.width.equalTo(30)
}
favButton.isUserInteractionEnabled = true
favButton.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(removeFromFavorites)))
}
@objc func removeFromFavorites() {
guard …Run Code Online (Sandbox Code Playgroud)