Создание табличных представлений в ячейках табличного представления - PullRequest
0 голосов
/ 28 июня 2018

У меня есть табличное представление, которое содержит список состояний. Я не использовал TableViewController для создания табличного представления. Я просто перетащил TableView в раскадровку. Мне интересно, как создать табличное представление в каждой ячейке состояния TableView. В табличном представлении внутри каждой ячейки состояния я хочу, чтобы оно содержало другое табличное представление со списком городов, относящихся конкретно к этому состоянию. Например, ячейка «Мичиган» содержит города «Детройт» и «Флинт», а ячейка «Иллинойс» содержит города «Чикаго» и «Рокфорд» (в каждом штате будет более 2 городов, это только пример. )

Ниже я приложил свой код. Можете ли вы предоставить четкое кодирование и где разместить новый код.

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    @IBOutlet weak var tableView: UITableView!

    let textCellIdentifier = "TextCell"

    var states = ["Illinois", "Indiana", "Kentucky", "Michigan", "Ohio", "Pennsylvania", "Wisconsin"]

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return states.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: textCellIdentifier, for: indexPath)
        let row = indexPath.row
        cell.textLabel?.text = states[row]

        return cell
    }

    private func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath as IndexPath, animated: true)

        let row = indexPath.row
        print(states[row])
    }
}

1 Ответ

0 голосов
/ 28 июня 2018

возможно, вы просите разделы в виде таблицы. просто попробуйте этот код, чтобы получить свой результат.

enter image description here

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var mytbl: UITableView!

    var names = ["Illinois": ["Chicago", "Rockford"], "Michigan": ["Detroit", "Flint"]]

    struct States {
        var sectionName : String!
        var sectionObjects : [String]!
    }
    var stateArray = [States]()


    override func viewDidLoad() {
        super.viewDidLoad()

        for (key, value) in names {
            print("\(key) -> \(value)")
            stateArray.append(States(sectionName: key, sectionObjects: value))
        }
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

extension ViewController : UITableViewDelegate,UITableViewDataSource{

    func numberOfSections(in tableView: UITableView) -> Int {
        return stateArray.count
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return stateArray[section].sectionObjects.count
    }


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

        // Configure the cell...
        cell.textLabel?.text = stateArray[indexPath.section].sectionObjects[indexPath.row]
        return cell
    }

    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

        return stateArray[section].sectionName
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...