Sobes.tech
Junior — Middle

Kuidas te implementite delegeerimise tabeli juhtimiseks oma projektis?

sobes.tech AI

Vastus AI-lt

iOS-is tavapäraselt luuakse klass, mis rakendab protokolle UITableViewDelegate ja UITableViewDataSource, et hallata tabelit (UITableView). Delegaat vastutab tabeliga seotud sündmuste töötlemise eest, ning andmeallikas (data source) pakub andmeid.

Delegaadi ja andmeallika rakendamise näide:

class MyTableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    let data = ["Õun", "Banaan", "Apelsin"]

    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("Valitud element: \(data[indexPath.row])")
    }
}

Projektis luuakse tavaliselt eraldi klass või laiendus delegaadi jaoks, et eraldada kuvamise ja sündmuste töötlemise loogika kontrollerist.