Sobes.tech
Junior — Middle

Как се различават компонентите StackView и TableView в разработката на интерфейси?

sobes.tech AI

Отговор от AI

StackView и TableView са различни компоненти за създаване на интерфейси в iOS, които служат за различни цели:

  • UIStackView е контейнер за подреждане на дъщерни изгледи в хоризонтална или вертикална посока. Той автоматично управлява разположението и размера на вложените елементи, улеснявайки създаването на адаптивни интерфейси без необходимост от писане на много код за constraints.

  • UITableView е компонент за показване на голям списък от еднородни данни във формата на таблица, с възможност за повторно използване на клетки, превъртане и динамично обновяване. Той изисква реализиране на datasource и delegate за управление на съдържанието и поведението.

Пример за използване на UIStackView:

let stackView = UIStackView(arrangedSubviews: [view1, view2, view3])
stackView.axis = .vertical
stackView.spacing = 10
stackView.distribution = .fillEqually
view.addSubview(stackView)
// Добавяне на constraints към stackView

Пример за основен 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)
        // Добавяне на constraints към 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
    }
}

Следователно, StackView е за организиране на елементи, а TableView — за показване на списъци с данни.