Sobes.tech
Junior — Middle

Hogyan valósítja meg a delegáltat a táblázat kezelésére a projektjében?

sobes.tech MI

Válasz az MI-től

Az iOS-ben a táblázat (UITableView) kezeléséhez általában létrehozunk egy osztályt, amely megvalósítja a UITableViewDelegate és UITableViewDataSource protokollokat. A delegát felelős az események kezeléséért, míg az adatforrás (data source) az adatok biztosításáért.

A delegát és az adatforrás megvalósításának példája:

class MyTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    let data = ["Alma", "Banán", "Narancs"]

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        cell.textLabel?.text = data[indexPath.row]
        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        print("Kiválasztott elem: \(data[indexPath.row])")
    }
}

A projektben általában külön osztályt vagy kiterjesztést hoznak létre a delegát számára, hogy elkülönítsék a megjelenítési és eseménykezelési logikát a vezérlőtől.