【发布时间】:2014-08-05 12:37:43
【问题描述】:
我在互联网上搜索了很多解决此问题的方法,但我无法弄清楚。我正在尝试在表格视图中创建一个自定义单元格。
我创建了一个 CustomCell.swift 类来在我的自定义单元格中配置我想要的标签,通过情节提要(tableview 中的第一个原型单元格)创建它,并将它与标识符链接到 cellForRowAtIndexPath 方法
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
let cellIdentifier = "huisCell"
var cell: CustomCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CustomCell
if cell == nil {
cell = CustomCell(style: UITableViewCellStyle.Value1, reuseIdentifier: cellIdentifier)
}
cell!.huisAdresLabel.text = "123"
cell!.huisDetailLabel.text = "456"
return cell
}
我的 CustomCell.swift 代码是这样的:
class CustomCell: UITableViewCell {
@IBOutlet var huisAdresLabel: UILabel
@IBOutlet var huisDetailLabel: UILabel
}
现在它非常基本,但我只想让它工作,因为我可以用更多属性扩展单元格并更好地设置样式。
图片来自 DropBox,因为我需要 10 个声望才能正确记录我的问题 :)
https://www.dropbox.com/sh/5v9jb6cqp80knze/AAD5-yPR8-KoStQddkqKIbcUa
我希望有人能解释我做错了什么。
编辑:
为了澄清一些事情,在我尝试制作自定义单元之前,我让它与基本单元一起工作,左侧有一个标签。但是当我尝试设置表格视图的样式并创建一个自定义单元格时,它就不起作用了。
另外,在测试不同的解决方案时,我遇到了 CustomCell.swift 中的两个标签为零的问题。即使我做了一个自定义初始化并且确实喜欢
self.huisAdresLabel = UILabel()
它仍然是零。在我向您展示的代码中,它会打印以下内容:
<UILabel: 0xb2aadc0; frame = (0 -21; 42 21); text = '123'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0xb2aa3a0>>
【问题讨论】:
-
你确认这个方法实际上被调用了吗?很可能您没有正确设置 tableview 的
datasource。 -
是的,我刚刚做了一个 println(cell),它打印了以下内容:“<_ttc14schoonzichtapp10customcell: baseclass="UITableViewCell;" frame="(0" layer="<CALayer:">>" 编辑:println 就在 return 语句之前。
-
我有完全相同的错误。这绝对是 Xcode 6 beta 版本的错误!
标签: tableview cell swift xcode6