2015-10-05 57 views
0

我在我的UITableViewCell上有两个UILabelsTableViewCell第一次不显示数据

我使用的故事板,我有自定义单元格这些标签如下图所示:

enter image description here

cellForRowAtIndex方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *simpleTableIdentifier = @"cell"; 

NSLog(@"index = %ld",indexPath.row); //This logs correct 0,1,2 ..and so on 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 

if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; 
} 
UILabel *lblCellTitle = (UILabel*)[self.view viewWithTag:1]; 
UILabel *lblCellDetail = (UILabel*)[self.view viewWithTag:2]; 

lblCellTitle.text = [arrtableDataHeading objectAtIndex:indexPath.row]; //this array contain valid values 
lblCellDetail.text = [filterdInfo objectAtIndex:indexPath.row]; //this array contain valid values 

return cell; 

} 

我的问题是,当我第一次打开我的控制器数据显示自第二个索引,最后我看到自定义标签名称如下所示:

enter image description here

而当我滚动,然后只有数据更新和随机顺序我无法获得正确的顺序数据。

当我调试时当indexPath为0目标在UILabel得到零,但是当它变成1我得到正确的值。

enter image description here enter image description here

有些人告诉我使用cell.ContentView代替self.view将解决我的问题。但我很困惑这怎么可能。

+0

您是否在Storyboard(“cell”)中设置了单元格标识符? – Mahesh

+0

是的,我已经设置@Mahesh – NSUser

回答

0

尝试改变这些线,

UILabel *lblCellTitle = (UILabel*)[self.view viewWithTag:1]; 
UILabel *lblCellDetail = (UILabel*)[self.view viewWithTag:2]; 

UILabel *lblCellTitle = (UILabel*)[cell.contentView viewWithTag:1]; 
UILabel *lblCellDetail = (UILabel*)[cell.contentView viewWithTag:2]; 

如果它不工作,让我知道。

+0

它是在一个VC工作,但不工作其他.. – NSUser

2

因为我会建议您遵循的方式是不正确的。 根据MVC,如果你正在做一些自定义的事,你的视图类和你的控制器类应该是不同的。在你的情况下,你可以创建一个UITableViewCell类,并使用它的对象来初始化你的单元格。

CommentsTableViewCell *cell = (CommentsTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"comments cell"]; 
    cell.lblName.text = @"String data"; 
    NSString *dateString = @"String data"; 
    cell.lblCommentTime.text = @"String data"; 
    cell.imgDp.image = [UIImage imageNamed: @"String data"]; 
    cell.lblCommentDuration.text = @"String data"; 

在上述代码中CommentsTableViewCell是UITableViewCell的自定义类。 希望你会发现它有帮助。

相关问题