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 — барои намоиши рӯйхатҳои маълумот мебошад.