我已经在互联网上搜索了很多解决这个问题的方法,但我无法弄明白。我试图在表格视图中创建自定义单元格。
我创建了一个CustomCell.swift类,用于在我的自定义单元格中配置我想要的标签,通过storyboard(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
我希望有人可以解释我做错了什么。
编辑:
为了清理一些事情,在我尝试制作一个自定义单元格之前,我让它使用基本单元格,左侧有一个标签。但是当我尝试设置tableview样式并创建一个自定义单元格时,它不会起作用。
此外,在测试不同的解决方案时,我遇到了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>>
答案 0 :(得分:8)
我通过覆盖以下函数解决了这个问题,手动设置单元格的高度:
override func tableView(tableView:UITableView!, heightForRowAtIndexPath indexPath:NSIndexPath)->CGFloat
{
return 44
}
答案 1 :(得分:0)
尝试使用xib文件并将自定义单元格类添加到 &#34;表格查看单元格&#34;你在xib文件中创建的。
(确保将其重新连接到自定义单元类中的插座;)
此链接可能有所帮助。 http://www.weheartswift.com/swifting-around/
答案 2 :(得分:0)
我遇到了同样的问题,但在禁用“文件检查器”下的“使用自动布局”后,它确实有效!并显示自定义单元格
注意:我在Builder中创建了Custom Cells,而不是在Code中。使用Xcode beta 3
答案 3 :(得分:0)
在Xcode 6 Beta-4的IB中使用自定义表格单元格,我发现它们都是在彼此之上和我的非自定义单元格之间进行渲染。
我通过......解决了我的问题。
答案 4 :(得分:0)
快速解决方法:禁用使用大小类,但仍然不知道它是错误还是功能:-)需要更多调查或人阅读。