Highlight UITableViewCell trotz Event

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Highlight UITableViewCell trotz Event

    Hallo zusammen,

    ich habe einen UIViewController welcher aus einer UITableView mit Custom Cells besteht und einem UIDatePicker.
    Nun möchte ich, wenn der Screen geladen wird, dass die erste Zeile markiert ist (deren Wert vom DatePicker aber abhängig ist) und die Row gehighlighted/selektiert bleibt wenn ich am DatePicker die Zeiten ändere. Beim klick auf eine andere Row soll diese dann permanent selektiert sein. Das ganze wird von Apple in iCal->Add->Anfang, Ende auch so umgesetzt.

    PHP-Quellcode

    1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. if(indexPath.row == 0){
    4. NSLog(@"Start");
    5. self.endDateRowSelected = NO;
    6. [datePicker setDate:[util formatStringToDate:self.startDate] animated:YES];
    7. }else if(indexPath.row == 2){
    8. NSLog(@"End");
    9. self.endDateRowSelected = YES;
    10. if(self.endDate){
    11. [datePicker setDate:[util formatStringToDate:self.endDate] animated:YES];
    12. }
    13. }else{
    14. self.endDateRowSelected = NO;
    15. }
    16. }
    17. //ValueChange Method vom DatePicker
    18. -(IBAction)setStartTimeMethod
    19. {
    20. if(!self.endDateRowSelected)
    21. self.startDate = [util formatDateToString:[datePicker date]];
    22. else
    23. self.endDate = [util formatDateToString:[datePicker date]];
    24. [self.tableView1 reloadData];
    25. }
    Alles anzeigen



    Vielen Dank & Gruß,
    mybecks
  • Mac & i Test Abo
  • Danke für den Tipp. :)

    Habe es hinbekommen:

    in meiner cellForRowAtIndexPath schauen an Anfang oder Ende selektiert und dann "einfärben":

    PHP-Quellcode

    1. static NSString *CellIdentifier1 = @"CustonCell";
    2. DateTimeCell *cell = (DateTimeCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];
    3. if (cell == nil) {
    4. NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DateTimeCell" owner:self options:nil];
    5. cell = (DateTimeCell *)[nib objectAtIndex:0];
    6. }
    7. if(indexPath.row == 0){
    8. cell.description.text = [dict objectAtIndex:indexPath.row];
    9. cell.dateTime.text = self.startDate;
    10. if(!endDateRowSelected)
    11. [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    12. }else if(indexPath.row == 2){
    13. cell.description.text = [dict objectAtIndex:indexPath.row];
    14. cell.dateTime.text = self.endDate;
    15. if(endDateRowSelected)
    16. [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    17. }
    18. return cell;
    Alles anzeigen



    In meiner didSelectRowAtIndexPath einfach dann den BOOL entsprechend der aktuellen Auswahl setzen. Funktioniert einwandfrei :D