Sobes.tech
Junior — Middle

Jaké jsou hlavní výhody používání UITableView a UICollectionView ve srovnání s UIScrollView?

sobes.tech AI

Odpověď od AI

UITableView a UICollectionView nabízejí pohodlné a optimalizované mechanismy pro zobrazování seznamů a kolekcí dat, na rozdíl od UIScrollView, který pouze zajišťuje posouvání obsahu.

Hlavní výhody:

  • Opakované použití buněk: UITableView a UICollectionView používají mechanismus opakovaného použití buněk (reuseIdentifier), což výrazně snižuje spotřebu paměti a zvyšuje výkon při velkém počtu prvků.
  • Správa dat: Jsou úzce integrovány s delegáty a zdroji dat, což usnadňuje aktualizaci a správu obsahu.
  • Animace a aktualizace: Umožňují snadno animovat vložení, odstranění a aktualizaci prvků.
  • Flexibilní rozvržení: UICollectionView podporuje vlastní rozvržení, což umožňuje vytvářet složité mřížky a nestandardní uspořádání prvků.

Příklad použití UITableView s opakovaným použitím buněk:

class MyViewController: UIViewController, UITableViewDataSource {
    let tableView = UITableView()
    let data = ["Jablko", "Banán", "Třešeň"]

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