используйте кнопку, чтобы добавить новую ячейку utibableview в путь индекса - PullRequest
0 голосов
/ 07 августа 2020

В моем быстром коде ниже я хочу использовать корзину кнопок, чтобы добавить еще одну ячейку tableview в текущее tableview. Прямо сейчас 3 ячейки tableview находятся в коде, когда код создается и запускается. К кнопке нужно добавить 4 ячейки, а затем также напечатать 4 в ячейке. Он должен делать это бесконечно. Итак, 4 5 6 эт c. Код не использует раскадровки.

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return  3
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = "\(indexPath.row)"
        return cell
    }
    
    var btn = UIButton()
    var tableView = UITableView()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        setTableVIew()
        
        btn.backgroundColor = .systemTeal
        btn.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(btn)
        NSLayoutConstraint.activate([
            btn.bottomAnchor.constraint(equalTo: view.bottomAnchor),
            btn.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 1),
            btn.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.2),
        
        
        ])
        btn.addTarget(self, action: #selector(pressBtn), for: .touchDown)
    }
    
    func setTableVIew(){

        
        let VCframe = self.view.frame
        let height = VCframe.height * 0.8
        let width = VCframe.width
        
        tableView.frame = CGRect(x: 0, y: 0, width: width, height: height)
       
        tableView.backgroundColor = .clear
        tableView.delegate = self
        tableView.dataSource = self
        self.view.addSubview(tableView)
        
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
    }

    @objc func pressBtn(){
        //add another cell with the next index so the next number would be 4
    }
}

1 Ответ

0 голосов
/ 07 августа 2020

Простым способом было бы объявить переменную numberOfRows в области ViewController's и добавить ее значение при нажатии кнопки.

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    //...
    var numberOfRows = 3
    //...
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { numberOfRows }
    //...
    @objc func pressBtn(){
        numberOfRows += 1
        tableView.reloadData()
    }
}
...