Проблема создания UIButton в UITableViewCell программно - PullRequest
0 голосов
/ 25 октября 2018

У меня есть пользовательская ячейка, в которой требуется кнопка, но когда я ввожу код ниже, она делает двойные кнопки.

        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)

не могли бы вы взглянуть на это

1 Ответ

0 голосов
/ 25 октября 2018

Вы добавляете кнопки в цикле - вот почему вы получаете их больше.Вам нужно добавить свою кнопку в свой пользовательский класс UITableView - в вашем случае CustomTableViewCell3.Ячейки табличного представления используются повторно, так что код будет выполняться более одного раза.

Правильный способ сделать это примерно так:

class 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)
}

Если вам нужна дополнительная помощь, просто дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...