如何在原型单元中添加两个以上的标签?

时间:2014-05-19 20:04:56

标签: ios uitableview xcode5

我已经阅读了下面的教程,它运行正常。我的问题是如何在原型单元格中添加两个以上的标准单元?

http://thedarkdev.blogspot.co.uk/2013/09/web-service-apps-in-ios7-json-with.html

cell.textLabel.text =" Title Text&#34 ;;  cell.detailTextLabel.text ="详细文本"

我想添加另外4个标签,并希望使用故事板进行布局。

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:13)

您可以使用自定义单元格类型,并且您可以根据需要添加任意数量的标签:

  1. 创建一个空的UITableViewCell子类,您将用于此单元格。注意,这个子类在@implementation内不需要任何代码。我们只会为其属性添加插件,这些插件会显示在其@interface中,但故事板无需为单元编写任何代码本身。

  2. 返回Interface Builder,转到故事板中的表格视图,确保它有一个单元格原型。 (如果它没有将对象库中的一个拖到表视图上。)

    • 关于"身份"在右侧的检查器面板中,将单元原型的基类设置为您的UITableViewCell子类作为单元原型"基类&#34 ;;

    • 在故事板"属性"单元格的检查员,设置单元格"故事板标识符"你将在第5步中引用的内容(我在这里使用了CustomCell);

    • 设置单元格" Style"到"定制"而不是" Basic"或"详细":

      Custom

    • 将标签添加到单元格中。

    我已将标签添加到单个原型单元格中:

    enter image description here

  3. 使用"助理编辑器"与故事板同时显示您的代码。选择您已添加到场景中的其中一个标签,将下面的代码更改为您在步骤1中创建的UITableViewCell子类,现在可以 control -drag from用于为单元格自定义子类的标签创建IBOutlet引用的标签:

    enter image description here

    顺便说一下,我建议不要使用IBOutlettextLabel的{​​{1}}个名称(不仅它们太通用了,而且可能会与标签混淆出现在标准单元格布局中。)

  4. 现在你的tableview控制器可以引用这个子类:

    detailTextLabel
  5. 所以虽然这里有几个步骤,但最终的结果是你可以设计你想要的任何单元格布局,并且通过这个非常简单的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellIdentifier = @"Cell"; // make sure this matches the "Identifier" in the storyboard for that prototype cell CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; // retrieve the model data to be shown in this cell // now fill in the four labels: cell.firstNameLabel.text = ...; cell.lastNameLabel.text = ...; cell.emailLabel.text = ...; cell.telephoneLabel.text = ...; return cell; } 子类,你的UITableViewCell是令人难以置信的简单,只需引用您在Interface Builder中连接的cellForRowAtIndexPath引用。