Sobes.tech
Junior — Middle

Jak se liší komponenty StackView a TableView ve vývoji rozhraní?

sobes.tech AI

Odpověď od AI

StackView a TableView jsou různé komponenty pro vytváření rozhraní v iOS, které slouží různým účelům:

  • UIStackView je kontejner pro uspořádání podřízených pohledů ve vodorovném nebo svislém směru. Automaticky řídí rozložení a velikost vnořených prvků, což usnadňuje tvorbu adaptivních rozhraní bez nutnosti psaní velkého množství kódu pro constraints.

  • UITableView je komponenta pro zobrazení velkého seznamu homogenních dat ve formě tabulky, s možností opětovného použití buněk, posouvání a dynamické aktualizace. Vyžaduje implementaci datasource a delegate pro správu obsahu a chování.

Příklad použití UIStackView:

let stackView = UIStackView(arrangedSubviews: [view1, view2, view3])
stackView.axis = .vertical
stackView.spacing = 10
stackView.distribution = .fillEqually
view.addSubview(stackView)
// Přidat constraints pro stackView

Příklad základního UITableView:

class MyViewController: UIViewController, UITableViewDataSource {
    let tableView = UITableView()
    let data = ["Item 1", "Item 2", "Item 3"]

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.dataSource = self
        view.addSubview(tableView)
        // Přidat constraints pro tableView
    }

    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") ?? UITableViewCell(style: .default, reuseIdentifier: "cell")
        cell.textLabel?.text = data[indexPath.row]
        return cell
    }
}

Tedy, StackView slouží k organizaci prvků, zatímco TableView k zobrazení seznamů dat.