使用 swift 创建自定义的表格视图单元格
Posted
技术标签:
【中文标题】使用 swift 创建自定义的表格视图单元格【英文标题】:Create a customized table view cell using swift 【发布时间】:2014-11-09 06:21:10 【问题描述】:我正在按照本教程http://www.raywenderlich.com/62435/make-swipeable-table-view-cell-actions-without-going-nuts-scroll-views 创建自定义表格单元格。但我使用的是swift而不是objective 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(coder aDecoder: NSCoder)”,我会收到错误提示 'required' 初始化器 'init(coder:)' 必须由 UITableViewCell' 的子类提供。
我已阅读此主题 Class does not implement its superclass's required members
关于在我需要的 init(coder aDecoder: NSCoder) 中做什么。
但我无法编译代码。
如果有人可以帮助我,我将不胜感激。
谢谢。
【问题讨论】:
【参考方案1】:这是说您需要在所有初始化方法的末尾定义委托,因为该类变量未设置为可选。一种方法是将其设为可选(意味着它可以为 nil)
var delegate: SwipeableCellDelegate?
了解初始化和可选属性类型here
【讨论】:
谢谢。我尝试将委托更改为可选。我添加了一个 setter 方法,如下所示:var delegate: SwipeableCellDelegate? setDelegate(delegate: SwipeableCellDelegate) self.delegate = delegate 。但我现在得到一个编译器错误,说“预期声明” 你为什么要添加一个setter?这与原始问题有关吗? 好的,我想我可以删除我的 setter 方法,并在调用者中直接设置我的表格单元格视图的“委托”成员。感谢您的帮助。以上是关于使用 swift 创建自定义的表格视图单元格的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中将自定义 UITableViewCell 共享到多个 UITableViewController