2016-04-29 11 views
1

Ich habe eine Tabellenansicht mit benutzerdefinierten Zelle und es hat 2 Etiketten, ich ändere die Registerkarte und Ansicht Controller Programmatisch habe ich [tablview reloadData] nach Aktualisierung meiner Liste aufgerufen. Aber es aktualisiert nur ein Etikett Wert. hier ist der Code von cellForRowAtIndexPath:iOS: UITableviewController aktualisiert nicht den Wert eines Etiketts

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    TimesheetCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TimesheetCell"]; 
    Timesheet *t = (self.timesheetArray)[indexPath.row]; 
    cell.timesheetTitle.text = t.date; 

    cell.hours.text = [NSString stringWithFormat:@"%d", t.hours]; 
    NSLog(@"%d", t.hours); 

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
    formatter.dateFormat = @"EEEE, MMMM d"; 
    NSString *currentDate = [formatter stringFromDate:[NSDate date]]; 
    NSLog(@"%@",t.date); 
    if([t.date isEqualToString:currentDate]){ 
     cell.timesheetTitle.textColor = [UIColor colorWithRed:0 green:0.478431 blue:1.0 alpha:1.0]; 
     cell.hours.textColor = [UIColor colorWithRed:0 green:0.478431 blue:1.0 alpha:1.0]; 
    } 
    if(_changeCellToBlack) 
    { 
     cell.timesheetTitle.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0]; 
     cell.hours.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0]; 
    } 

    if (indexPath.row == 7) { 

     [cell.timesheetTitle setFont:[UIFont fontWithName:@"Avenir-Black" size:19]]; 
     [cell.hours setFont:[UIFont fontWithName:@"Avenir-Black" size:19]]; 

     [cell setAccessoryType:UITableViewCellAccessoryNone]; 
     if (t.hours < 40) { 
      cell.timesheetTitle.textColor = [UIColor redColor]; 
      cell.hours.textColor = [UIColor redColor]; 
     } 
    } 

    return cell; 
} 

Hours Label seinen Wert nicht aktualisiert wird, habe ich Wert aus der Liste protokolliert sie den Wert der Stunde enthält.

+0

Zeigen Sie uns, wie fügen Sie 'hours' UILabel in die Zelle. – KlimczakM

+0

Ich verwende Tabellenansicht-Controller und ich habe eine benutzerdefinierte Klasse für die Zelle "TimesheetCell" und ich habe eine IBOutlet-Eigenschaft von Stunden Label erstellt. –

+0

Was ist genaues Problem? Stundenlabel bekommt keinen Text? – Lion

Antwort

0

Nach 4 Stunden habe ich das Problem gefunden. Problem war in meinem Code nur die Alpha ändern von cell.hours.textColor, nur diese Zeile geändert:

cell.hours.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0];

Verwandte Themen