我有两个数组。

var TableData:Array< String > = Array < String >() var TableSpeed:Array< String > = Array < String >()

每个数组都涉及名称,标题,地址和年龄。
我想逐行显示这四个数据。
我当前的问题是每个数据都出现在每一行中。
“名称”显示在第一行。 “标题”数据显示在第二行。

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let packCellToReturn = tableView.dequeueReusableCellWithIdentifier("packCell", forIndexPath: indexPath) as! PackTableViewCell

    switch (packSegmentedControl.selectedSegmentIndex)
    {
    case 0:
        packCellToReturn.lblName.text = TableData[indexPath.row]
        packCellToReturn.lblTitle.text = TableData[indexPath.row]
        packCellToReturn.lblAddress.text = TableData[indexPath.row]
        packCellToReturn.lblAge.text = TableData[indexPath.row]

        break
    case 1:
        packCellToReturn.lblName.text = TableSpeed[indexPath.row]
        packCellToReturn.lblTitle.text = TableSpeed[indexPath.row]
        packCellToReturn.lblAddress.text = TableSpeed[indexPath.row]
        packCellToReturn.lblAge.text = TableSpeed[indexPath.row]
        break
    default:
        break

    }

    return packCellToReturn


}

最佳答案

我不确定您要实现的目标,但是我认为您需要重新考虑数据结构。

目前,您正在使用此代码访问整个数组,这意味着.lblName属性以及其他三个属性都设置为整个数组。

packCellToReturn.lblName.text = TableData[indexPath.row]


我会尝试像这样实现它:

struct TableData {

var name
var title
var address
var age

/*
Here you can either set up a memberwise initializer as I did below, or set default values for each variable above.
init(String: name, String: title, String: address, Int: age) {
self.name = name
self.title = title
self.address = address
self.age = age
*/
}

//Creating an array of TableData elements.
var tableData = [TableData]

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

let packCellToReturn = tableView.dequeueReusableCellWithIdentifier("packCell", forIndexPath: indexPath) as! PackTableViewCell

switch (packSegmentedControl.selectedSegmentIndex)
{
case 0:
    packCellToReturn.lblName.text = tableData[indexPath.row].name
    packCellToReturn.lblTitle.text = tableData[indexPath.row].title
    packCellToReturn.lblAddress.text = tableData[indexPath.row].address
    packCellToReturn.lblAge.text = tableData[indexPath.row].age

    break


然后,为TableSpeed结构和TableSpeed结构的tableSpeed数组创建结构等,执行相同的操作,并在tableView func中类似地实现它。

10-08 15:01