2013-10-10 26 views
4

我正在使用ios 7.ios 7 dequeueReusableCellWithIdentifier:forIndexPath方法 - 是否需要registerClass方法

快速的问题。我有一个工作程序使用dequeueReusableCellWithIdentifier:forIndexPath来显示两个不同原型的单元格。我从来没有使用过UITableView的registerClass方法。

这是否意味着我不重复使用这些单元格?我的想法是,情况并非如此(因为我在此应用程序中修复了与保留先前状态的单元格有关的错误)。

如果我现在实际上使用registerClass(在tableVieW的viewDidLoad中),我的数据没有被显示 - 任何想法为什么?

谢谢!

UPDATE 我添加的registerClass代码viewDidLoad中,如下所示:

[self.tableView registerClass:[ProtoCell1 class] forCellReuseIdentifier:@"proto1"]; 
[self.tableView registerClass:[ProtoCell2 class] forCellReuseIdentifier:@"proto2"]; 
+0

“如果我实际使用的registerClass现在(在viewDidLoad中的实现代码如下),我的数据不会被显示 - 任何想法为什么?“ - 我们怎么知道?你还没有放置任何代码。注册课程只是一项新功能,您现在可以使用这两种方法。但也许旧方法现在被depricated – BergP

+0

我添加了代码来添加注册类,如果有帮助。 – serverman

+0

@serverman你在使用故事板吗? –

回答

8

如果使用一个情节串连图板,没有必要注册类内原型产生的细胞。

使用

registerClass:forCellWithReuseIdentifier 

会阻止你的看法从渲染,如果它是在Interface Builder中已经声明。如果你注册在故事板的小区标识,并且使用

dequeueReusableCellWithReuseIdentifier: 

,那么你应该重用细胞

+0

谢谢凯尔,那回答我的问题! – serverman

+0

谢谢,这也帮助我! – mikey