新的UITableViewCell无法正确绘制

时间:2015-05-08 09:31:09

标签: ios objective-c uitableview

我在故事板中定义了一个单元格,我有

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TTEntry" forIndexPath:indexPath];

它给了我一个单元格,然后我可以配置它,它显示正常。

但是,当我尝试使用

添加新单元格时
[self.tableView insertRowsAtIndexPaths:[[NSArray alloc] initWithObjects: indexPath, nil] withRowAnimation:UITableViewRowAnimationAutomatic];

结果是一个半初始化和一半绘制的新单元格。当我选择单元格时,其余部分会绘制,但其中一部分未初始化。

感觉故事板在从dequeueReusableCellWithIdentifier返回单元格时尚未完成为单元格创建UI对象。

我假设我做了一些愚蠢的事情,但我重新阅读了UITableView手册,并查看了我的所有代码,而我能想到的只是有一个种族状况以某种方式发生。

顺便提一下,每次运行时故障模式都是一样的 - 以这种方式创建的第二个和第三个单元格看起来总是错误,然后第4个似乎没问题但是没有获得焦点,第5个再次失败并且第6个失败效果很好。

更新09/06/15 我继续尝试旧的"评论几乎所有的东西,看看它是否有效"诀窍,我发现似乎导致问题的那些线是:

UILabel *label;
label = (UILabel *)[cell viewWithTag:1];
label.text = [NSString stringWithFormat:@"%d", numerator[indexPath.row]];

tableView:cellForRowAtIndexPath方法中。

因此,似乎对此时更新标签文本感到不满意,这是一种耻辱,因为标签在没有更新的情况下是不好的。

在这种方法中更新像这样的标签,或者我只是使用错误的视图类型?

0 个答案:

没有答案