Невозможно привести ячейку к пользовательской ячейке - PullRequest
0 голосов
/ 28 мая 2019

Я создал собственную ячейку, но она не вызывается и не приводится.

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

В настоящее время это мои функции.Отладка, я обнаружил, что она никогда не входит в условие if внутри cellForRowAt, поэтому в этом и заключается проблема, но не могу понять, что его вызывает.

func registerCell() {
        let cellNib = UINib(nibName: FAQTableViewCell.reuseIdentifier, bundle: nil)
        tableView.register(cellNib, forCellReuseIdentifier: FAQTableViewCell.reuseIdentifier)
    }

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: FAQTableViewCell.reuseIdentifier, for: indexPath)
        if let cell = cell as? FAQTableViewCell {
            cell.preguntaLabel.text = arrayTitulo[indexPath.row] as? String
            cell.respuestaLabel.text = arrayDesc[indexPath.row] as? String
        }

        return cell
    }

Я проверил все, .xib ofячейка, cell.swift, controller.swift, все, все совпадает.Я не знаю, что еще сделать.

FAQTableViewCell:

import AEAccordion

final class FAQTableViewCell: AccordionTableViewCell {

    static let reuseIdentifier = "FAQTableViewCell"

    @IBOutlet weak var headerView: UIView!
    @IBOutlet weak var detailView: UIView!
    @IBOutlet weak var preguntaLabel: UILabel!
    @IBOutlet weak var respuestaLabel: UILabel!

    // MARK: Override

    override func setExpanded(_ expanded: Bool, animated: Bool) {
        super.setExpanded(expanded, animated: animated)

        if animated {
            UIView.transition(with: detailView, duration: 0.3, animations: {
                self.detailView.isHidden = !expanded
            }, completion: nil)
        } else {
            detailView.isHidden = !expanded
        }
    }

    private func toggleCell() {
        detailView.isHidden = !expanded
    }
}

ИСПРАВЛЕНО: Я только что удалил .xib и сделал собственную ячейку внутри TableViewController на Main.storyboard

Ответы [ 3 ]

0 голосов
/ 28 мая 2019

Согласно факту отладки «Я обнаружил, что он никогда не входит в if в cellForRowAt».

Убедитесь, что возвращаемое значение func tableView(_: UITableView, numberOfRowsInSection _: Int) -> Int равно! = Ноль

и

значение func numberOfSections(in tableView: UITableView) -> Int только если оно реализовано так, что его значение по умолчанию равно 1, если не реализовано

0 голосов
/ 28 мая 2019

Пожалуйста, проверьте ячейку ноль или нет. Если ячейка равна нулю, удалите файл .xib из цели и добавьте еще раз.

enter image description here

0 голосов
/ 28 мая 2019

Не удалось преобразовать значение типа 'UITableViewCell' (0x119dffaa0) в 'TelemedIOS.FAQTableViewCell' (0x1105d8688)

Необходимо присвоить имя класса FAQTableViewCell ячейке в xib

enter image description here

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