如何从故事板加载原型单元?

时间:2014-03-07 17:46:09

标签: objective-c uikit ocunit sentestingkit

有没有办法加载原型单元格,以及故事板中定义的任何IBOutlet连接?

更新

我想对单元格(单元的UICollectionViewCell)进行单元测试,因此希望将它加载到UIViewController上下文之外。

实际上,就像您可以从笔尖加载自定义视图一样,指定其文件的所有者并设置其IBOutlet。

2 个答案:

答案 0 :(得分:12)

编辑:据我所知,除了你创建的ViewController之外,不可能在Storyboard中使用原型UITableViewCells。

我还没有尝试使用单元测试,但您可以轻松地将自定义UITableViewCell放入单独的笔尖。

要在视图控制器中使用它,您需要使用tableViews注册单元格

UINib *nib = [UINib nibWithNibName:@"ABCNameOfYourNibCell" bundle:nil];
[self.tableView registerNib:nib forCellReuseIdentifier:@"myCustomCell"];

然后在cellForRowAtIndexPath:

中使用这样的单元格
static NSString *CellIdentifier = @"myCustomCell";

ABCNameOfYourNibCell *cell = 
[tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

出于测试目的,您应该可以使用:

ABCNameOfYourNibCell *testCell = 
[[ABCNameOfYourNibCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:nil];

如果您需要测试重用行为,则应在此处设置reuseIdentifier并在单元格上调用prepareForReuse

答案 1 :(得分:11)

通常你会创建UITableViewControllerUITableView。比你还应该创建一个UITableViewCell类。创建UITableViewCell类后,转到`UIStoryboard,选择单元格:

enter image description here

然后在UITableViewCell

中设置Identity Inspector

enter image description here

现在将元素添加到UITableViewCell并将它们与您的类

连接

enter image description here

现在在CellIdentifier

中添加Attributes Inspector

enter image description here

没有你的UITableViewControllerUIViewController UITableViewDelegate方法,你可以像这样调用你的单元格(不要忘记#import {{1}您UITableViewCell顶部的类:

ViewController