3
respostas

Duvidas na função: func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)

Estou seguindo as aulas, mas não consegui entender as especificidades da função tableView:UITableView,cellForRowAt indexPath.

Gostaria de verificar a possibilidade de uma explicação mais detalhada a respeito deste código.

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let row = indexPath.row
        let meal = meals[row]

        var cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: nil)
        cell.textLabel!.text = meal
        return cell
    }
}
3 respostas

Fala ai André, tudo bem ?

A ideia desse código é gerar a linha que será exibida no tableview.

Onde você precisa pegar o indice da linha e ai pegar o item da sua lista, por exemplo

Olá Matheus, tudo joia. O objetivo da função está claro para mim, o que não consegui entender é o que está sendo realizado. Nas explicações esta explicação foi bem rápida.

Dúvida #1:

    let row = indexPath.row
        let meal = meals[row]

O código define uma constante row, e a preenche com o valor de indexPath.row. O que seria este indexPath.row? Seria uma sequencia de números, iniciando do primeiro valor do array (0) até o seu final?

Dúvida #2:

var cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: nil)
        cell.textLabel!.text = meal
        return cell

Esta função tem o objetivo de formatar a célula com um padrão gráfico default?

O indexPath é um objeto que fica gerenciando a tabela, tanto que para pegarmos o indice usamos o atributo row o que gera essa sintaxe : indexPath.row

Já o segundo caso, estamos pegando o padrão do ios para celulas, é possível criar uma celula personalizada também, a gente deve ver isso mais a frente no curso.