我有一个需要按钮的自定义单元格,但是当我在下面输入代码时,它会变成双按钮。
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell3", for: indexPath) as! CustomTableViewCell3
var fram = CGRect(x: 0, y: 0, width: 25, height: 25)
for counter in 0..<socials.count {
let ofset = 27.5 * Double(socials.count - 1) - Double(counter * 55) + Double(12.5)
fram.origin.x = (cell.myView.frame.size.width) / 2 - CGFloat(ofset)
fram.origin.y = cell.myView.frame.size.height / 4
fram.size = CGSize(width: CGFloat(25), height: CGFloat(25))
let socialsButton = UIButton(frame: fram)
socialsButton.setImage(UIImage(named: "\(Array(socials)[counter].key)Icon"), for: .normal)
cell.myView.addSubview(socialsButton)
你能看看吗
答案 0 :(得分:0)
您正在循环添加按钮-这就是为什么要获得更多按钮的原因。您需要在自定义UITableView
类中添加按钮-在您的情况下为CustomTableViewCell3
。 Tableview单元被重用,因此代码将被执行多次。
正确的方法是这样的:
CustomTableViewCell3类:UITableViewCell {
var socialCount:Int! //您可以将其用作单元格的配置点-而不是将计算包含在cellForRow
override func awakeFromNib() {
super.awakeFromNib()
// Calculate the frame here
let socialsButton = UIButton(frame: frame)
socialsButton.setImage(UIImage(named: "\(Array(socials)[counter].key)Icon"), for: .normal)
myView.addSubview(socialsButton)
}
如果您需要更多帮助,请告诉我。