Swift: TableView (внутри ячейки) не загружает ячейки или код внутри cellForRowAt - PullRequest
0 голосов
/ 16 октября 2018

Почему моя ячейка не загружает данные из таблицы в ячейку?

По сути, она выполняет функцию numberOfRowsInSection.Однако функция cellForRowAt полностью игнорируется и никогда не запускается.

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

Кто-нибудь знает, почему код внутри этой функции вообще не запускается?

import Foundation
import UIKit

class SettingsTable: UITableViewCell, UITableViewDelegate, UITableViewDataSource{
    @IBOutlet weak var myTableView: UITableView!
    @IBOutlet weak var tableIcon: UIImageView!
    @IBOutlet weak var tableTitle: UILabel!

    var TableViewSettingsStruct = SettingsStruct()

    func displayContent(tableViewTitle: String, tableViewIcon: UIImage, settingsStruct: SettingsStruct){
        tableTitle.text = tableViewTitle
        tableIcon.image = tableViewIcon
        TableViewSettingsStruct = settingsStruct
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        //Initialization
        myTableView.delegate = self
        myTableView.dataSource = self
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        myTableView.delegate = self
        myTableView.dataSource = self
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return TableViewSettingsStruct.cellType.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        print("Running tableView Code")
        let cell = tableView.dequeueReusableCell(withIdentifier: "errorCell") as! UITableViewCell
        cell.textLabel?.text = "An error occurred fetching the cell"
        return cell
    }
}

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

1 Ответ

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

Хорошо, спасибо всем за помощь!

Я понял, что у моего tableView не было установлено ограничение по высоте, и как только я его установил, tableView загрузил ячейку (и, следовательно, функцию cellForRowAt).

Иногда это может быть довольно утомительно: /

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