自定义TableViewCell没有故事板

时间:2015-05-27 17:38:53

标签: ios swift xcode6

我正在使用TableViewCell的自定义cocoa类扩展,它不会给出任何错误消息,但单元格不会出现在tableview中。滚动变长但表格单元格不可见。

我在我的ViewController中输入了这个:

tableView.registerClass(CustomTableViewCell.self, forCellReuseIdentifier: "Cell")

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)->UITableViewCell
    {
        var cell:CustomTableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as? CustomTableViewCell
        if cell == nil {
            cell = CustomTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
         }

        cell!.labTime.text = filtered[indexPath.row].name!
        return cell!
    }

我的细胞类看起来像

    var labTime = UILabel()

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

        labTime = UILabel(frame: contentView.bounds)
        labTime.font = UIFont(name:"HelveticaNeue-Bold", size: 16)

        contentView.addSubview(labTime)
    }

我不使用任何storyBoard或xib文件。 找不到解决方案, 感谢

1 个答案:

答案 0 :(得分:7)

这样做。

属性的所有视图初始化都应该在init方法中。 将其添加到自定义单元格类

var labTime: UILabel!

required init(coder aDecoder: NSCoder) {

            super.init(coder: aDecoder)
    }


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

         super.init(style: style, reuseIdentifier: reuseIdentifier)
         //Do your cell set up

        labTime = UILabel(frame: contentView.bounds)
        labTime.font = UIFont(name:"HelveticaNeue-Bold", size: 16)

        contentView.addSubview(labTime)
    }

在视图控制器的viewDidLoad方法中添加以下行。

tableView.registerClass(CustomTableViewCell.self, forCellReuseIdentifier: "Cell")

设置这两个代理 - UITableViewDataSourceUITableViewDelegate