как добавить элементы списка в виде таблицы в стриже-

голоса
0

Я пытаюсь добавить элементы в виде таблицы. Я могу видеть, что каждый раз, когда я нажимаю на кнопку новой строки вставки в таблицу, но ячейка пуста. Когда я отладка коды я могу видеть все элементы в списке, но я не могу видеть, как они отображаются на самом приложении. Элементы «1», «2» и «3» не отображаются, а также

@IBOutlet weak var itemLbl: UITextField!
    var items: [String] = [1, 2, 3]

override func viewDidLoad() {
        super.viewDidLoad()
        tableView.tableFooterView = UIView(frame: CGRect.zero)


    }

func insertItem(){
    items.append(itemLbl.text!)

    let indexPath = IndexPath(row: items.count - 1,section: 0 )
    tableView.beginUpdates()
    tableView.insertRows(at: [indexPath], with: .automatic)
    tableView.endUpdates()
    itemLbl.text = 
    view.endEditing(true)
}

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

РЕДАКТИРОВАТЬ:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let itemLbl  =  items[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: ItemCell) as! ItemCell

        cell.itemLbl.text = itemLbl
        return cell
    }
Задан 02/12/2019 в 23:56
источник пользователем
На других языках...                            


3 ответов

голоса
0

Вы пробовали использовать tableView.reloadData()? Кроме того , не заставляйте разворачивать itemLabel.text.

func insertItem(){
    if let itemText = itemLabel.text {
       items.append(itemText)

       tableView.reloadData()
    }
}

Убедитесь в том , чтобы добавить tableView.reloadData()в конце viewDidLoad().

Ответил 03/12/2019 в 00:16
источник пользователем

голоса
1

Лучше всего, чтобы перезагрузить таблицу каждый раз, когда изменяется источник данных, которые вы можете сделать так:

var items: [String] = ["1", "2", "3"] {
    didSet {
        tableView.reloadData()
    }
}

func insertItem(){
    if let text = itemLbl.text { 
        items.append(itemLbl.text)
    }
}
Ответил 03/12/2019 в 00:54
источник пользователем

голоса
0

Есть несколько возможностей, которые могут вызвать эту проблему. Первое, что вы должны проверить, что в вашем списке, убедитесь, что вы используете идентификатор повторного использования для мобильного прототипа, и что вы на него ссылаются. Кроме того, убедитесь, что вы перезагрузки таблицы всякий раз, когда вы добавляете элемент (не постоянно это делать, поскольку это приведет к разрядке аккумулятора пользователя). Если ни один из них работают, возможно, вы не подключить розетки должным образом.

Ответил 03/12/2019 в 02:24
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more