2016-08-23 53 views
0

我想在iOS上使用UITableView製作一個List,但是當我使用自定義單元格時,它總是空的,並且顯示空單元格並且不顯示我設置的計數。iOS UITableView在使用自定義UITableViewCell時爲空

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 
    } 

} 

請幫我解決這個問題。

+0

您是否使用StoryBoard?如果是這樣,它看起來像什麼? – ZGski

+0

您是否正確設置了IBOutlets(特別是collectionName)? – firstinq

+1

不要註冊類和筆尖,只需註冊筆尖。 – deadbeef

回答

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 
    } 

} 
相關問題