如何将两个以上的标签添加到原型单元格?
我已经通过下面的教程,它工作正常。 我的问题是如何添加两个以上的标准单元格到原型单元格?
http://thedarkdev.blogspot.co.uk/2013/09/web-service-apps-in-ios7-json-with.html
cell.textLabel.text =“标题文本”; cell.detailTextLabel.text =“详细文字”
我想添加另外4个标签,并希望使用故事板进行布局。
任何想法如何做到这一点?
您可以使用自定义单元格types,并且可以根据需要添加任意数量的标签:
-
创build一个空的
UITableViewCell
子类,你将使用这个单元格。 请注意,这个子类在@implementation
不需要任何代码。 我们只会为其属性添加sockets,这些sockets将显示在其@interface
,但故事板无需为单元自己编写任何代码。 -
回到界面生成器,转到故事板中的表格视图,确保它有一个单元格原型。 (如果它不从对象库拖动到表视图。)
-
在右边的“Identity”检查器面板上,将单元格原型的基类设置为您的
UITableViewCell
子类作为单元原型的“基类”; -
在单元格的故事板的“属性”检查器中,将单元格“Storyboard identifier”设置为步骤5中引用的内容(我在此使用了
CustomCell
)。 -
将单元格“样式”设置为“自定义”而不是“基本”或“详细”:
-
将您的标签添加到单元格。
我在这里添加了标签到一个单一的原型单元格:
-
-
使用“助理编辑器”与故事板同时显示您的代码。 select添加到场景中的一个标签,将下面的代码更改为在步骤1中创build的
UITableViewCell
子类,然后现在可以控制标签中的-drag以将标签的IBOutlet
引用创build为单元格的自定义子类:顺便说一下,我build议不要使用
textLabel
或detailTextLabel
IBOutlet
名称(不仅它们太泛化,而且会与标准单元textLabel
detailTextLabel
中出现的标签混淆)。 -
现在你的tableview控制器可以引用这个子类:
- (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; }
因此,虽然有几个步骤可以通过这里,但最终的结果是您可以devise任何您想要的单元格布局,使用这个非常简单的UITableViewCell
子类,您的cellForRowAtIndexPath
非常简单,只需引用您在Interface中连接的IBOutlet
引用生成器。