在swift中自定义UITableViewCell

时间:2014-12-09 15:45:19

标签: iphone uitableview swift

我在Swift中有一个自定义的tableview单元格作为xib文件,这很好,我有一个链接到它的swift文件。

像这样:

import UIKit

class CustomTableViewCell: UITableViewCell {

    @IBOutlet weak var CellTitle: UILabel!
    @IBOutlet weak var CellLocation: UILabel!
    @IBOutlet weak var CellDate: UILabel!
    @IBOutlet weak var Type: UIImageView!
    @IBOutlet weak var TypeText: 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
    }

}

IBOutlets只是UILabels和UIImageViews的链接,但这些目前不需要任何值,因为它们现在被添加到设计中。

我有一个ViewController文件,它链接到故事板上的一个视图控制器,上面有一个tableview。 这是我用过的代码,但是如何使用我在这个tableview(视图控制器)上创建的customCell。

import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    override func viewDidLoad() {
        super.viewDidLoad()
        // 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.
    }

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

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

        let cell = tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath) as UITableViewCell


        return cell
    }

}

任何帮助都会很棒,谢谢

我已添加:

 var nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
        tableView.registerNib(nib, forCellReuseIdentifier: "customCell")

注册nib名称并在tableview中注册单元格,我还将cellforindexpath更改为:

var cell:CustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("CustomCell") as CustomTableViewCell

2 个答案:

答案 0 :(得分:1)

cellIdentifier是不同的。错字?

tableView.registerNib(nib, forCellReuseIdentifier: "customCell")

var cell:CustomTableViewCell = self.tableView.dequeueReusableCellWithIdentifier("CustomCell") as CustomTableViewCell

答案 1 :(得分:0)

试试这个!!

    override func viewDidLoad() {
            super.viewDidLoad()
    self.tableView.delegate = self
    self.tableView.datasourse = self 
    self.tableView.registerNib(nib, forCellReuseIdentifier: "customCell")
       }

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

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

        let cell = tableView.dequeueReusableCellWithIdentifier("tableCell", forIndexPath: indexPath) as UITableViewCell


        return cell
    }