Различные ячейки в зависимости от текста ячейки - PullRequest
0 голосов
/ 01 ноября 2018

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

Day1

Мин. Температура

Макс. Температура

Day2

Мин. Температура

Макс. Температура

Day3

Мин. Температура

Макс. Температура

и т. Д. И т. Д. *

Я также использую разделы и следующие функции:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCell(withIdentifier: "minimumTemperature")
    cell?.textLabel?.text = "fooMinTemperature"

    return cell!
}

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

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

override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
    return  // logic for getting the heading of the section
}

Проблема в том, что override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

Функция

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

1 Ответ

0 голосов
/ 01 ноября 2018

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCell(withIdentifier: "minimumTemperature") as! UITableViewCell

    let data = myArrayOfDays[indexPath.section]
    let temp = indexPath.row == 0 ? data.minimumTemp : data.maximumTemp
    cell.textLabel?.text = "\(temp)"

    return cell
}

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

override func numberOfSections(in tableView: UITableView) -> Int {
    return myArrayOfDays.count
}

Имена переменных, которые я использовал, являются просто примерами. Обновите свои собственные по мере необходимости.

В заголовке вашего раздела может отображаться номер дня.

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