Swift自定义单元格用标签创build自己的单元格
我刚开始使用Swift作为一种开源语言,我遇到了一个Custom Cell的问题。
当我尝试创build自定义单元格,然后前进并尝试按照我需要的方式devise它们(将样式设置为“自定义”),一切看起来都不错。 现在我不知道如何把特定的数据放入它们,因为我发现所有的教程都使用了“基本”样式选项,他们只有一个文本标签,他们为其分配数据。
现在,当我“控制”我的标签到我的代码,我给他们特定的名称,如“dateLabel”或“sourceLabel”,以便正确插入数据。
现在我不知道,也找不到任何工作的答案,如何回忆我的定制标签,以便我可以分配我的数据给他们…
也许有人可以帮助我,因为我很确定这是一个简单的问题,但我没有find任何资源^^
希望字体不小,我只是想让你们看到我得到的错误。
我使用了下面的教程作为指导,因为它是唯一一个像这个人那样工作的人: https : //www.youtube.com/watch?v=0qE8olxB3Kk
我检查了标识符,他设置正确,我不能在网上find任何东西,我如何正确地引用我自己的标签与他们的正确名称。
任何帮助,将不胜感激 :)
尝试以下步骤:
-
创build一个扩展
UITableViewCell
的自定义表格视图单元格类。 在我的示例中,自定义表格视图单元格类称为MyCustomTableViewCell
。 -
更新您的故事板的单元格,以便它使用您的自定义表格视图单元格类。 转到
Identity Inspector
并将Class值设置为您的自定义表视图单元类的名称。 -
更新您的故事板的单元格,并给它一个重用身份值。 转到
Attributes Inspector
并设置标识符值。 例如,我给我的单元格MyCustomCell
的标识符值。 -
控制将单元格的标签拖到新的自定义表格视图单元格类(即
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 } }