Как добавить разные ячейки в таблицу? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть таблица, и я загружаю данные из firebase, после чего перезагружаю таблицу, но я хочу добавить и другую ячейку в таблицу.Например, у меня шесть данных, и я хочу добавить во вторую и пятую строки разные ячейки.В конце я хочу показать восемь ячеек.

Я попробовал этот код;

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.row == 1 {
        let cell = myTableView.dequeueReusableCell(withIdentifier: "makeLiveWallpaper") as! LiveWallTableViewCell
        if indexPath.row == 1 {
            cell.titleLabel.text = "Let's make LiveWallpaper"
        }
        return cell
    }else{
        if let cell = myTableView.dequeueReusableCell(withIdentifier: "CategoryTableViewCell", for: indexPath) as? CategoryTableViewCell{
            cell.category = category(at: indexPath)
            cell.delegate = self
            cell.setScrollPosition(x: offsets[indexPath] ?? 0)
            return cell
        }
    }
    return UITableViewCell()
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row == 1 {
        return 140
    }else{
        return 255
    }
}

Но это не добавление новой ячейки, это перезапись на ячейку

1 Ответ

1 голос
/ 28 марта 2019

Как только вы получите данные, обновите ваш источник данных, как указано ниже:

data.insert("", at: 1)
data.insert("", at: 4)
self.tableView.reloadData()

обновить метод источника данных

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.row == 1 {
        // your custom Cell
        return cell
    } else if indexPath.row == 5 {
        // you custom Cell
        return cell
    } else {
        // normal cell
    }
    return UITableViewCell()
}

Надеюсь, это поможет тебе.

...