Sobes.tech
Junior — Middle

Interfeyslarni ishlab chiqishda StackView va TableView komponentlari qanday farq qiladi?

sobes.tech AI

AIdan javob

StackView va TableView iOS uchun interfeyslarni qurishda turli maqsadlar uchun xizmat qiladigan turli komponentlardir:

  • UIStackView - bu bolalar ko'rinishlarini gorizontal yoki vertikal yo'nalishda joylashtirish uchun konteyner. U ichki elementlarning joylashuvi va o'lchamini avtomatik ravishda boshqaradi, moslashuvchan interfeyslar yaratishni soddalashtiradi va ko'p kod yozishni talab qilmaydi.

  • UITableView - bu katta miqdordagi bir xil ma'lumotlarni jadval shaklida ko'rsatish uchun komponent, u yerda hujayralarni qayta ishlatish, skroll qilish va dinamik yangilash imkoniyatlari mavjud. U mazmuni va xulq-atvorini boshqarish uchun datasource va delegate ni amalga oshirishni talab qiladi.

UIStackView dan foydalanish misoli:

let stackView = UIStackView(arrangedSubviews: [view1, view2, view3])
stackView.axis = .vertical
stackView.spacing = 10
stackView.distribution = .fillEqually
view.addSubview(stackView)
// stackView uchun constraints qo'shish

Asosiy UITableView misoli:

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)
        // tableView uchun constraints qo'shish
    }

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

Shu bilan birga, StackView elementlarni tashkil qilish uchun, TableView esa ma'lumotlar ro'yxatini ko'rsatish uchun xizmat qiladi.