2015-10-05 91 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的自定義類。 希望你會發現它有幫助。

相關問題