Swift自定义单元格用标签创build自己的单元格

我刚开始使用Swift作为一种开源语言,我遇到了一个Custom Cell的问题。

当我尝试创build自定义单元格,然后前进并尝试按照我需要的方式devise它们(将样式设置为“自定义”),一切看起来都不错。 现在我不知道如何把特定的数据放入它们,因为我发现所有的教程都使用了“基本”样式选项,他们只有一个文本标签,他们为其分配数据。

现在,当我“控制”我的标签到我的代码,我给他们特定的名称,如“dateLabel”或“sourceLabel”,以便正确插入数据。

现在我不知道,也找不到任何工作的答案,如何回忆我的定制标签,以便我可以分配我的数据给他们…

也许有人可以帮助我,因为我很确定这是一个简单的问题,但我没有find任何资源^^

在这里输入图像说明

希望字体不小,我只是想让你们看到我得到的错误。

我使用了下面的教程作为指导,因为它是唯一一个像这个人那样工作的人: https : //www.youtube.com/watch?v=0qE8olxB3Kk

我检查了标识符,他设置正确,我不能在网上find任何东西,我如何正确地引用我自己的标签与他们的正确名称。

任何帮助,将不胜感激 :)

尝试以下步骤:

  1. 创build一个扩展UITableViewCell的自定义表格视图单元格类。 在我的示例中,自定义表格视图单元格类称为MyCustomTableViewCell

  2. 更新您的故事板的单元格,以便它使用您的自定义表格视图单元格类。 转到Identity Inspector并将Class值设置为您的自定义表视图单元类的名称。 在Identity Inspector中设置自定义单元类

  3. 更新您的故事板的单元格,并给它一个重用身份值。 转到Attributes Inspector并设置标识符值。 例如,我给我的单元格MyCustomCell的标识符值。 设置您的单元的重用标识

  4. 控制将单元格的标签拖到新的自定义表格视图单元格类(即MyCustomTableViewCell类)中。


一旦完成了上述步骤,当你在tableView:cellForRowAtIndexPath:方法中取出你的单元格时,你将能够访问标签。 如下面的代码片段所示,您将需要:1)使用您在上述步骤中build立的重用标识符获取单元格,2)投射到您的自定义表格视图单元格类。

例如,如果您将其命名为MyCustomTableViewCell那么以下是您的自定义表格视图单元格的样子。 这是在创build类和控件之后,将标签拖放到此类中。

 class MyCustomTableViewCell: UITableViewCell { @IBOutlet weak var categoryLabel: UILabel! @IBOutlet weak var dateLabel: UILabel! @IBOutlet weak var sourceLabel: UILabel! @IBOutlet weak var titleLabel: UILabel! } 

您的ViewController可能如下所示:

 // NOTE: I subclassed UITableViewController since it provides the // delegate and data source protocols. Consider doing this. class ViewController: UITableViewController { // You do NOT need your UILabels since they moved to your // custom cell class. // ... // Omitting your other methods in this code snippet for brevity. // ... override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { // Use your cell's reuse identifier and cast the result // to your custom table cell class. let article = tableView.dequeueReusableCellWithIdentifier("MyCustomCell", forIndexPath: indexPath) as! MyCustomTableViewCell // You should have access to your labels; assign the values. article.categoryLabel?.text = "something" article.dateLabel?.text = "something" article.sourceLabel?.text = "something" article.titleLabel?.text = "something" return article } }