在故事板中连接单元原型的出口
我是故事板的新手,所以我有一些困难…
我已经创build了一个TableViewController,我想定制Cell Prototype。 在单元原型中,我添加了几个标签,我想用我自己的inheritance自UITableViewCell(AreaListCell)的类来定制。 在Storyboard中,对于Cell Prototype,我使用“AreaListCell”configuration了Custom Class,风格是“Custom”。
在故事板中,当我selectCell Prototype然后select助手时,助手将显示实现UITableViewController(AreasTableViewController)的类而不是
我的“AreaListCell”类。
结果是我可以创build出口(使用Ctrl +拖动从单元格原型的标签)到AreasTableViewController类,但不是AreaListCell类! 任何想法如何连接我的AreaListCell类单元格原型?
谢谢你的帮助!
更新:从Xcode 4.6(可能更早),您现在可以通过控制拖动创build网点! – 这必须在接口部分或类扩展中完成(对于新的单元格子类,默认情况下类扩展名不存在。感谢Steve Haley指出了这一点。
拖到辅助编辑器中的代码块时,您不能自动连接和创build出口,但是您可以手动创build出口并连接它们。
在你的单元格子类接口中:
@interface CustomCell : UITableViewCell @property (nonatomic) IBOutlet UILabel* customLabel; @end
在实现中正常合成。
在故事板中,select单元格并转到连接检查器,您将看到新的出口。 从那里拖动到原型中的相关元素:
现在可以在cellForRowAtIndexPath:
方法中以cell.customLabel
forms访问它。
是的,你不能使用Ctrl +拖拽方法连接定制原型单元格内的视图。 而是使用视图的标签属性,然后在构build单元格时,使用标签将标签拉出。
这里:
//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调用将标签属性分配给您在故事板上创build的标签。
我花了几天的时间才意识到我无法从自定义单元格中按Ctrl +拖动来创build一个IBOutlet。
祝你好运!
编辑:您可以创build自定义单元格内的标签IBOutlets,并创build链接programatticaly,只是不通过CTRL +拖动方法。
编辑2:我完全错了,你可以按Ctrl +拖动。 看到这个问题的第二个答案。 这是棘手的,但它工作得很好。
Swift 3
/ /如果您的图像在服务器上,我们正在使用这个。
//我们从url获取图片
//你可以从你的Xcode设置图像。
- 图像的URL在一个数组名称=缩略图,即self.thumbnail [indexPath.row]
- 在UITableviewCell上放置一个imageView的单元格
-
selectUIimageView从故事板中分配一个标签。
let pictureURL = URL(string: self.thumbnail[indexPath.row])! let pictureData = NSData(contentsOf: pictureURL as URL) let catPicture = UIImage(data: pictureData as! Data) var imageV = UIImageView() imageV = cell?.viewWithTag(1) as! UIImageView imageV.image = catPicture