Swift: текстовые представления в UIStackView не отображаются - PullRequest
0 голосов
/ 19 июня 2020

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

import UIKit

class HistoryTableViewController: UITableViewController {

let cellID = "HistoryColumns"

struct CellData {
    let firstColumn: String?
    let secondColumn: String?
    let thirdColumn: String?
    let fourthColumn: String?
}

var data = [CellData]()

override func viewDidLoad() {
    super.viewDidLoad()

    data = [CellData.init(firstColumn: "Date", secondColumn: "Flight number", thirdColumn: "Type", fourthColumn: "Pre-refuel FOB (kg)")]
    tableView.register(FuelHistoryColumnCells.self, forCellReuseIdentifier: cellID)
}

// MARK: - Table view data source

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: cellID) as! FuelHistoryColumnCells
    cell.firstColumn = data[indexPath.row].firstColumn
    cell.secondColumn = data[indexPath.row].secondColumn
    cell.thirdColumn = data[indexPath.row].thirdColumn
    cell.fourthColumn = data[indexPath.row].fourthColumn

    return cell
}
}

И это мой собственный код ячейки:

import UIKit

class FuelHistoryColumnCells: UITableViewCell {

      var firstColumn: String?
      var secondColumn: String?
      var thirdColumn: String?
      var fourthColumn: String?

    lazy var firstColumnView: UITextView = {
        let textView = UITextView()
        textView.font = UIFont.systemFont(ofSize: 15)
        textView.backgroundColor = .green
        return textView
    }()

    lazy var secondColumnView: UITextView = {
        let textView = UITextView()
        textView.font = UIFont.systemFont(ofSize: 15)
        textView.backgroundColor = .green
        return textView
    }()

    lazy var thirdColumnView: UITextView = {
        let textView = UITextView()
        textView.font = UIFont.systemFont(ofSize: 15)
        textView.backgroundColor = .green
        return textView
    }()

    lazy var fourthColumnView: UITextView = {
        let textView = UITextView()
        textView.font = UIFont.systemFont(ofSize: 15)
        textView.backgroundColor = .green
        return textView
    }()

    lazy var fifthColumnView: UITextView = {
        let textView = UITextView()
        textView.font = UIFont.systemFont(ofSize: 15)
        textView.backgroundColor = .green
        return textView
    }()

    lazy var stackView: UIStackView = {
        let stack = UIStackView(arrangedSubviews: [firstColumnView, secondColumnView, thirdColumnView, fourthColumnView])
        stack.axis = .horizontal
        stack.distribution = .fillEqually
        return stack
    }()

    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        addSubview(stackView)
    }

    override func layoutSubviews() {
        super.layoutSubviews()
        if let firstColumn = firstColumn {
            firstColumnView.text = firstColumn
        }

        if let secondColumn = secondColumn {
            secondColumnView.text = secondColumn
        }

        if let thirdColumn = thirdColumn {
            thirdColumnView.text = thirdColumn
        }

        if let fourthColumn = fourthColumn {
            fourthColumnView.text = fourthColumn
        }

    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

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

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