我与故事板是一个新手,所以我有一些困难?
我创建了一个TableViewController,我想定制单元格原型。 在Cell原型我增加了一些标签,我想用我自己的类,从的UITableViewCell(AreaListCell)继承来定制。 在故事板,为电池原型我已经配置了自定义类与“AreaListCell”,其风格是“自定义”。
在故事板,当我选择单元格原型,然后助理,助理显示我的类,它实现的UITableViewController(AreasTableViewController),而不是
我的“AreaListCell”级。
结果是我可以创造出口(用Ctrl +拖动从电池原型的标签)到AreasTableViewController类,但不给AreaListCell类! 任何想法如何到Cell原型与我AreaListCell类连接?
谢谢你的帮助!
更新:由于Xcode的4.6(可能更早)您现在可以创建由控制拖动直销! -这必须完成到接口部分或类扩展(类扩展默认情况下不为新的细胞子指出这一点的存在要归功于史蒂夫海利。
你不能被拖动到的助理编辑,这是很差的代码块自动连接,并建立了出口,但你可以手动创建出口和连接它们即可。
在你的子界面:
@interface CustomCell : UITableViewCell
@property (nonatomic) IBOutlet UILabel* customLabel;
@end
合成在执行正常。
在故事板,选择单元格,然后转到连接检查,你会看到新的出路。 拖动从那里到你的原型相关的元素:
这个现在可以为访问cell.customLabel
在你cellForRowAtIndexPath:
方法。
是的,你不能连接的看法是使用CTRL +拖曳法的自定义原型细胞内。 相反,使用视图的标签属性,然后当你正在构建的电池抠出来的标签使用他们的标签。
这里:
//Let's assume you have 3 labels. One for a name, One for a count, One for a detail
//In your storyboard give the name label tag=1, count tag=2, and detail tag=3
- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomTableViewCell *theCell = [tableView dequeueReusableCellWithIdentifier:@"Prototype Cell"];
UILabel *nameLabel = (UILabel *)[theCell viewWithTag:1];
UILabel *countLabel = (UILabel *)[theCell viewWithTag:2];
UILabel *detailLabel = (UILabel *)[theCell viewWithTag:3];
nameLabel.text = @"name";
countLabel.text = @"count";
detailLabel.text = @"details";
return theCell;
}
当电池被初始化使用viewWithTag调用标签属性分配到你有你的故事板创建的标签,您还可以设置标签了作为您的自定义单元代码属性,然后。
我花了几天意识到我不能从自定义单元格创建一个IBOutlet内CTRL +拖动。
祝好运!
编辑:您可以为您的标签IBOutlets自定义单元格内和programatticaly创建链接,只是没有通过CTRL +拖动的方法。
编辑2:我完全错了,你可以按Ctrl +拖动。 见第二次回答这个问题。 这是棘手的,但它工作得很好。