Swift TableView Population - PullRequest
       6

Swift TableView Population

0 голосов
/ 10 октября 2019

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

Когда я запускаю свою программу, там есть стиль (шрифт и т. Д.), Но кажется, что ограничения не работают? Кроме того, цвет ячейки не отображается (отображается только фон таблицы), а разделители ячеек отсутствуют. Метки перекрывают друг друга, и когда я устанавливаю высоту ячейки 75, она не выглядит такой высокой.

Вот так выглядит моя ячейка: Смотрите таблицу здесь

Я сделал модель для ячейки таблицы, как показано здесь (IdeaCell правильно настроен на прототипеячейка в раскадровке):

class IdeaCell: UITableViewCell {

    @IBOutlet weak var ideaNameLbl: UILabel!
    @IBOutlet weak var ideaDateLbl: UILabel!


    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        if selected {
            self.layer.backgroundColor = UIColor(white: 1, alpha: 0.2).cgColor
        } else {
            self.layer.backgroundColor = UIColor.clear.cgColor
        }
    }

    func configureCell(idea : CoreIdea) {
        let name = idea.name
        ideaNameLbl.text = name

        let date = idea.date
        ideaDateLbl.text = date
    }
}

И мой соответствующий код контроллера табличного представления находится здесь (идентификатор повторного использования (ideaCell) правильно установлен в ячейке прототипа в раскадровке):

class IdeaVC: UITableViewController { 
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if let cell = tableView.dequeueReusableCell(withIdentifier: "ideaCell", for: indexPath) as? IdeaCell {
            let idea = ideas[indexPath.row]
            cell.configureCell(idea: idea)
            return cell
        } else {
            return UITableViewCell()
        }
    }
}

ОБНОВЛЕНИЕ: После добавления функции heightForRowAt мои ячейки имеют правильную высоту, и ограничения работают так, как должны. По какой-то причине цвет фона ячейки отсутствует, а разделитель ячейки не отображается (шрифт и цвет шрифта работают). Все они были установлены в раскадровке.

Вот скриншот моих ячеек: отсутствует стиль ячейки

ОБНОВЛЕНИЕ 2: Я установил разделитель и фон следующим образом:

self.tableView.backgroundColor = UIColor.black
self.tableview.separatorColor = UIColor.white

Надеюсь, это поможет кому-то! Честно говоря, я не знаю, почему мои значения из раскадровки не сработали, но установка их в viewDidLoad работала отлично.

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

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

0 голосов
/ 10 октября 2019

Вы сказали вашему столу высоту ячейки? Если не попробовать это. Это один из ваших методов делегирования таблиц.

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 75.0 //Set your cell height that you want to appear in your tableview
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...