2017-04-06 4 views
-1

Ich habe UIView Klasse, die UITableView Jetzt hinzugefügt i erstellt UITableViewCell will auf UITableViewCell individuelle Zelle hinzugefügt.Wie UITableViewCell auf UIView Tableview hinzufügen

- (id)initWithCoder:(NSCoder *)coder{ 

    self = [super initWithCoder:coder]; 
    if (self) { 
      //do somthing 
     filterColorTableView.delegate = self; 
     filterColorTableView.dataSource = self; 

     [self.filterColorTableView registerNib:[UINib nibWithNibName:@"FilterColor" bundle:nil] forCellReuseIdentifier:@"COLORCELL"]; 

     colorNameList = [[ColorModelClass colorListNames]allKeys]; 
     filterColorTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero]; 

    } 

    return self; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    static NSString *tableViewCellIdentifier = @"COLORCELL"; 
    FilterColorTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableViewCellIdentifier forIndexPath:indexPath]; 
    [cell.lbl_ColorName setText:@"Welcome"] ; 
    cell.lbl_ColorName.textColor = [UIColor redColor]; 
    [cell.colorImage setImage:[UIImage imageNamed:@"circle.png"]]; 
    return cell; 

} 

Crash Report Message: 

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with identifier COLORCELL - must register a nib or a class for the identifier or connect a prototype cell in a storyboard' 

Welches Zellobjekt schafft, aber die dazugehörigen lbl_ColorName und color ist immer und überall gleich Null

ist

Hinweis: Ich habe nicht verwendet UIViewController nur UIView Klasse in diesem Ansatz verwendet wird.

Auf UIView Xib hinzugefügt UITableView und nahm eine andere benutzerdefinierte UITableViewCell mit in der gleichen Datei Besitzer.

enter image description here

+0

registriert haben Sie die Zelle mit dem Tableview? um es aus der Warteschlange zu nehmen? – HarmVanRisk

+0

@HarmVanRisk Ja, ich tat. – kiran

+0

Haben Sie den Attribut-Inspektor beim Markieren der Zelle in der XIB-Datei hinzugefügt? – HarmVanRisk

Antwort

0

Erste register the custom cell class jederzeit bei oder nach viewDidLoad. Danach wurde the dequeue method, das zusammen mit der Klassen- oder Federregistrierung eingeführt wurde, . Beachten Sie den neuen IndexPath-Parameter.

Es ist immer eine initialisierte Zelle zurückkehrt, so dass die Null-Check überflüssig ist ...

FilterColorTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:filterTableViewCell forIndexPath:indexPath]; 
// deleted if(cell == nil){...} 
+0

Ich versuche, die jetzt abstürzende "NSInternalInconsistencyException" zu registrieren, Grund: "kann eine Zelle mit dem Identifier COLORCELL nicht entfernen - muss eine Nib oder eine Klasse für den Bezeichner registrieren oder eine Prototypzelle in einem Storyboard verbinden" in dem hinzugefügten Bezeichner "COLORCELL", ich habe die Frage im Detail aktualisiert. – kiran

+0

Hmm. Ich wusste nicht, dass dies im Kontext von initWithCoder war. Das hört sich so an, als wäre die Arbeit in init getan zu früh. Kannst du den Table-Setup-Eintrag in "didLayoutSubviews" verschieben? – danh

Verwandte Themen