Sobes.tech
Назад к вопросам
Junior — Middle
63

Как реализована и функционирует таблица для отображения данных в Swift?

Компании, где спрашивали
Вкусно и точкаВкусно и точка

Ответ от нейросети

sobes.tech AI

В iOS для отображения табличных данных традиционно используется класс UITableView (в UIKit) или List (в SwiftUI).

В UIKit:

  • UITableView отображает данные в виде списка строк, разбитых на секции.
  • Для работы с таблицей необходимо реализовать протоколы UITableViewDataSource (для предоставления данных) и UITableViewDelegate (для обработки взаимодействия).
  • Каждая ячейка создаётся или переиспользуется с помощью идентификатора.

Пример простого UITableView:

class ViewController: UIViewController, UITableViewDataSource {
    let tableView = UITableView()
    let data = ["Яблоко", "Банан", "Апельсин"]

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.dataSource = self
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell")
        view.addSubview(tableView)
        tableView.frame = view.bounds
    }

    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
    }
}

В SwiftUI:

  • Используется List, который автоматически управляет отображением и обновлением данных.
  • Данные передаются в List в виде коллекции.

Пример:

struct ContentView: View {
    let fruits = ["Яблоко", "Банан", "Апельсин"]

    var body: some View {
        List(fruits, id: \ .self) { fruit in
            Text(fruit)
        }
    }
}