使用自定义UITableViewCell时,iOS UITableView为空

时间:2016-08-23 17:28:12

标签: ios swift uitableview

我正在尝试在iOS上使用UITableView创建一个List,但是当我使用自定义单元格时,它总是为空并显示空单元格而不是我设置的计数。

ViewController.swift

import UIKit

class ViewController: UITableViewController {

    var collections = ["Collection 1", "Collection 2", "Collection 3", "Collection 4", "Collection 5", "Collection 6"]
    var descriptions = ["Collection description 1", "Collection description 2", "Collection description 3", "Collection description 4", "Collection description 5", "Collection description 6"]
    let cellIdentifier = "CollTableViewCell"

    override func viewDidLoad() {
        super.viewDidLoad()
        let tableNib = UINib(nibName:"CollectionTableViewCell", bundle:nil)
        tableView.registerClass(CollectionTableViewCell.self, forCellReuseIdentifier: cellIdentifier)
        tableView.registerNib(tableNib,forCellReuseIdentifier:cellIdentifier)
    }

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

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

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 6
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! CollectionTableViewCell
        cell.collectionName?.text = collections[indexPath.row]
        return cell
    }

}

CollectionTableViewCell.swift

import UIKit

class CollectionTableViewCell: UITableViewCell {

    @IBOutlet weak var collectionName: UILabel!
    @IBOutlet weak var collectionDesc: UILabel!
    @IBOutlet weak var collectionImage: UIImageView!

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
    }

    override init(style: UITableViewCellStyle, reuseIdentifier: String!) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

请帮我解决。

1 个答案:

答案 0 :(得分:0)

class ViewController: UIViewController {

    @IBOutlet weak var tblView: UITableView!
    var collections:NSArray = []
    var descriptions:NSArray = []

    override func viewDidLoad() {
         collections = ["Collection 1", "Collection 2", "Collection 3", "Collection 4", "Collection 5", "Collection 6"]
         descriptions = ["Collection description 1", "Collection description 2", "Collection description 3", "Collection description 4", "Collection description 5", "Collection description 6"]
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    func numberOfSectionsInTableView(tableView: UITableView) -> Int
    {
        return 1
    }

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

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath:indexPath) as! TableViewCell
        cell.lbl_Name.text = collections.objectAtIndex(indexPath.row) as? String
        cell.lbl_Desc.text = descriptions.objectAtIndex(indexPath.row) as? String
        return cell
    }



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


}


class TableViewCell: UITableViewCell {

    @IBOutlet weak var lbl_Name: UILabel!
    @IBOutlet weak var lbl_Desc: UILabel!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}