【问题标题】:Custom cell in Xcode 6 + Swift not displayingXcode 6 + Swift 中的自定义单元格不显示
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我通过重写以下函数解决了这个问题,手动设置单元格的高度:

    override func tableView(tableView:UITableView!, heightForRowAtIndexPath indexPath:NSIndexPath)->CGFloat
    {
        return 44
    }
    

    【讨论】:

    • 您先生是救生员。从字面上看,已经坚持了一个多星期!非常感谢!
    【解决方案3】:

    在 Xcode 6 Beta-4 的 IB 中使用自定义表格单元格工作时,我发现它们都呈现在彼此之上以及我的非自定义单元格上。

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

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

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题,但是在“文件检查器”下禁用“使用自动布局”后,它确实有效!并显示自定义单元格

      注意:我在 Builder 中创建了自定义单元格,而不是在代码中。使用 Xcode beta 3

      【讨论】:

        【解决方案5】:

        尝试使用 xib 文件并将您的自定义单元类添加到 您在 xib 文件中创建的“表格视图单元格”。

        (确保将其重新连接到自定义单元类中的插座;)

        此链接可能会有所帮助。 http://www.weheartswift.com/swifting-around/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-11-17
          • 2019-08-21
          • 2017-06-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-21
          • 1970-01-01
          相关资源
          最近更新 更多