Xcode 6 + Swift中的自定义单元格无法显示

时间:2014-06-15 15:07:32

标签: tableview cell swift xcode6

我已经在互联网上搜索了很多解决这个问题的方法,但我无法弄明白。我试图在表格视图中创建自定义单元格。

我创建了一个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>>

5 个答案:

答案 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

enter image description here

答案 3 :(得分:0)

在Xcode 6 Beta-4的IB中使用自定义表格单元格,我发现它们都是在彼此之上和我的非自定义单元格之间进行渲染。

我通过......解决了我的问题。

  1. 在IB中选择自定义单元格
  2. 选择尺寸检查器(Option-Command-5)
  3. 表视图单元格部分中的
    1. 检查自定义框
    2. 保持默认提供的44行高

答案 4 :(得分:0)

快速解决方法:禁用使用大小类,但仍然不知道它是错误还是功能:-)需要更多调查或人阅读。