迅速用2数组填充UItableViewCell

时间:2018-12-20 03:10:13

标签: ios swift uitableview

我有一个带有2个UITableViewCell的基本uitableview,我试图用array1.count填充第一个单元格,并用array2.count填充第二个单元格,但是我不知道如何,这是我的代码:

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

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        var value: Int = 0
        if(section == 0){
            value = 1
        }else if(section == 2){
            value = 5
        }
        return value
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if indexPath.row == 0 {
            let cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.cell1, for: indexPath) as!  Cell1
            cell.lbl_cell1.text = "Subject"
            cell.selectionStyle = .none
            return cell
        } else if indexPath.row == 1 {
            let cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.cell2, for: indexPath) as!  Cell2
            cell.lbl_cell2.text = "Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen."
            cell.selectionStyle = .none
            return cell
        }
        return UITableViewCell()
    }

我的错误是我总是在每个单元格中获得1个值,我只想要这个

单元格1的数学运算 单元格2 a,b,c,d,e,f,g,h .....

预先感谢

2 个答案:

答案 0 :(得分:2)

尝试一下:

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

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    var value: Int = 0
    if(section == 0){
        value = array1.count
    }else{
        value = array2.count
    }
    return value
 }

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.section == 0 {
        let cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.cell1, for: indexPath) as!  Cell1
        item = array1[indexPath.row]
        ...
        return cell
    } else {
        let cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.cell2, for: indexPath) as!  Cell2
        item = array2[indexPath.row]
        ...
        return cell
    }
}

答案 1 :(得分:0)

您应该使用两个部分来处理此问题,并在UITableViewDataSource方法中为每个部分添加检查,

let numberOfSections = 2
var firstArray = [String]()
var secondArray = [String]()


override func viewDidLoad() {
    firstArray = ["1"]
    secondArray = ["a", "b", "c", "d", "e", "f"]
}


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

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if(section == 0) {
        return firstArray.count
    } else if(section == 1) {
        return secondArray.count
    }
    return 0
 }

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.section == 0 {
        let cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.cell1, for: indexPath) as!  Cell1
        let title = firstArray[indexPath.row]
        cell.lbl_cell1.text = title
        cell.selectionStyle = .none
        return cell
    } else if indexPath.section == 1 {
        let cell = tableView.dequeueReusableCell(withIdentifier: Storyboard.cell2, for: indexPath) as!  Cell2
        let title = secondArray[indexPath.row]
        cell.lbl_cell2.text = title
        cell.selectionStyle = .none
        return cell
    }
    return UITableViewCell()
}

希望有帮助。