2012-01-23 158 views
0

我的自定義tableview單元格有問題。當我想將文字放在我的標籤上時,它不會改變。這是我的代碼的樣子。自定義UITableviewCell不會設置標籤

我NieuwsTableViewCell.h

@interface NieuwsTableViewCell : UITableViewCell{ 

} 
@property (nonatomic, retain) IBOutlet UILabel *topic; 
@property (nonatomic, retain) IBOutlet UILabel *omschrijving; 

@end 

我NieuwsTAbleViewCell.m

@implementation NieuwsTableViewCell 
@synthesize topic; 
@synthesize omschrijving; 

和我firstViewController.m

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

    NieuwsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 

     NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"NieuwsTableViewCell" owner:nil options:nil]; 

     for (UIView *view in views) { 
      if([view isKindOfClass:[UITableViewCell class]]) 
      { 
      NSDictionary *info = [json objectAtIndex:indexPath.row]; 

      cell.topic.text = @"Stef"; 
      cell.omschrijving.text = [info objectForKey:@"Nie_omschrijving"]; 
      NSLog(@"voorlopige test"); 


      cell = (NieuwsTableViewCell*)view; 
      } 
     } 
    } 

    return cell; 
} 

回答

1

這是因爲你設置裏面的文本屬性如果(!cell)阻止。該塊只會被調用幾次來創建可重用對象。以簡單的方式移動單元格。*。text =部分在if(!cell)塊之外。這是一個完整的代碼JIC

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

    NieuwsTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 

     NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"NieuwsTableViewCell" owner:nil options:nil]; 

     for (UIView *view in views) { 
      if([view isKindOfClass:[UITableViewCell class]]) 
      { 
      cell = (NieuwsTableViewCell*)view; 
      } 
     } 
    } 
       NSDictionary *info = [json objectAtIndex:indexPath.row]; 

      cell.topic.text = @"Stef"; 
      cell.omschrijving.text = [info objectForKey:@"Nie_omschrijving"]; 
      NSLog(@"voorlopige test"); 

    return cell; 
} 
+0

它工作!謝謝 ! – steaphann