我需要两个图像按钮可以在某个单元格(不是所有单元格)内单击,而不是文本。我怎样才能做到这一点?我有单元格扩展名,并且图像“the_icon”存在(我可以看到它显示在屏幕上),但我似乎无法让触发器(fja())在按钮上工作,如下所示:
class ChatCell: UITableViewCell {
...
@IBOutlet var b: UIButton!
let vwContainer: UIView = {
let vw = UIView()
vw.backgroundColor = APP_YELLOW_COLOR
vw.layer.cornerRadius = 8.0
vw.clipsToBounds = true
return vw
}()
let lblMessage: UILabel = {
let ic = UILabel()
ic.font = .appFontWithSize(size: 14.0)
ic.numberOfLines = 0
ic.lineBreakMode = .byWordWrapping
return ic
}()
....
}
在 init 内部,我尝试放置一个带有 imageview 的按钮,并将其绑定到一个函数
fja()
但它似乎不起作用。 fja()
只是 ChatCell
中的一个函数,其中只有一个 print()
。我错过了什么:
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
backgroundColor = .clear
selectionStyle = .none
addSubview(vwContainer)
addSubview(messageStatusImage)
let b = UIButton()
let i = UIImageView(image: UIImage(named: "the_icon"))
b.addSubview(i)
//lblMessage.addSubview(b) I TRIED ALSO THIS
b.addTarget(self, action: #selector(fja), for: .touchUpInside)
vwContainer.addSubview(lblMessage)
vwContainer.addSubview(b)
}
// @objc func fja() { I TRIED ALSO THIS, declaring it as @objc
@IBOutlet func fja() {
print("this is never reached.")
}
问题是
vwContainer
。有两个问题:
contentView
。