简体   繁体   English

分组节UITableView swift IOS中的重复值

[英]Duplicated values in grouped section UITableView swift IOS

I have created grouped sections in UITableView but values are getting duplicate. 我在UITableView中创建了分组的节,但是值越来越重复。 How to populate items under each section? 如何在每个部分下填充项目? Sections I already created. 我已经创建的部分。 Few Title items are null. 很少有标题项为空。

SectionList --> Title --> Items SectionList->标题->项目

Like: 喜欢:

  • Bir have one item 伯尔有一件
  • Proj Plan have null item 项目计划的项目为空
  • Proj Ev has three items Proj Ev有三个项目

  • I want to display textField in every section Title. 我想在每个部分的标题中显示textField。

code: 码:

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        tableView.dataSource = self
        tableView.delegate = self

        if let url = Bundle.main.url(forResource: "AppD", withExtension: "json") {
            do {
                let data = try Data(contentsOf: url)
                let decoder = JSONDecoder()
                let jsonData = try decoder.decode(AppointmentDetail.self, from: data)
                self.AppData = jsonData
                self.tableView.reloadData()
            } catch {
                print("error:\(error)")
            }
        }
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

        return  50
    }

    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return AppData?.sectionList?[section].title
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return AppData?.sectionList?.count ?? 0
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return AppData?.sectionList?.count ?? 0
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath)

        // Configure the cell...


        if let sections = AppData?.sectionList?[indexPath.section].items {
            for item in sections {
                if item.textField != "" {
                    cell.textLabel?.text = item.textField

                }
            }
        }

Make changes as below 进行如下更改

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return AppData?.sectionList?[section].items?.count ?? 0
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath)
    cell.textLabel?.text = AppData?.sectionList?[indexPath.section].items?[indexPath.row].textField
    cell.textLabel?.sizeToFit()
    cell.textLabel?.numberOfLines = 0
    return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

For Adding HeaderView XIB to table view 用于将HeaderView XIB添加到表视图

var tableHeaderViewObj : BookNowHotelDetailHeader?

inViewdidload inViewdidload

tableHeaderViewObj = BookNowHotelDetailHeader(frame: CGRect(x: 0.0, y: 0.0, width: (window?.frame.width)!, height: 350))
self.BookNowTV.tableHeaderView = tableHeaderViewObj
tableHeaderViewObj?.parentVC = self
tableHeaderViewObj?.UpdateBookNowHotelData(Obj: hotelDetailObj ?? HotelDetailModal())

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM