在 Swift UIKit 中,如何在表格单元格内添加两个按钮图像?

问题描述 投票:0回答:1

我需要两个图像按钮可以在某个单元格(不是所有单元格)内单击,而不是文本。我怎样才能做到这一点?我有单元格扩展名,并且图像“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.")
}    
swift uitableview button uikit imageview
1个回答
0
投票

问题是

vwContainer
。有两个问题:

  • 它没有大小(除非您在未能发布的代码中调整它的大小)。
  • 它作为子视图添加到单元格中。您绝不能将子视图添加到单元格中。您必须仅将其添加到单元格的
    contentView
© www.soinside.com 2019 - 2024. All rights reserved.