使用swift创建自定义表格视图单元格

时间:2014-09-15 16:44:58

标签: ios swift

我正在按照本教程http://www.raywenderlich.com/62435/make-swipeable-table-view-cell-actions-without-going-nuts-scroll-views创建自定义表格单元格。但我使用swift而不是客观c。

这是我在swift中的表格单元格视图。

protocol SwipeableCellDelegate {
    func buttonOneActionForItemText(itemText: NSString)
    func buttonTwoActionForItemText(itemText: NSString)
}

class MyTableViewCell: UITableViewCell {
    @IBOutlet weak var button1: UIButton!
    @IBOutlet weak var button2: UIButton!
    @IBOutlet weak var mytextLabel: UILabel!

    @IBOutlet weak var testLabel: UILabel!

    var delegate: SwipeableCellDelegate

    init(delegate: SwipeableCellDelegate) {
        self.delegate = delegate
        super.init()
    }

    required init(coder aDecoder: NSCoder) {
       // fatalError("init(coder:) has not been implemented")
        super.init(coder : aDecoder)
    }
}

但它没有编译,我得到错误说:

MyTableViewCell.swift:38:9:属性'self.delegate'未在super.init调用中初始化

如果我摆脱“init(编码器aDecoder:NSCoder)”,我会收到错误说法 'required'initializer'init(coder :)'必须由UITableViewCell的子类提供。

我已经读过这个帖子了 Class does not implement its superclass's required members

关于在我所需的init(coder aDecoder:NSCoder)中做什么。

但我无法获得编译代码。

如果有人可以帮助我,我感激不尽。

谢谢。

1 个答案:

答案 0 :(得分:2)

它说您需要在所有init方法的末尾定义委托,因为该类变量未设置为可选。一种方法是使其成为可选的(意味着它可以是零)

var delegate: SwipeableCellDelegate?

了解初始化和可选属性类型here