Custom TableViewCell im Editmode

  • Custom TableViewCell im Editmode

    Hi Leute,

    habe eine kleine Frage.
    Wie kann ich von einer TableViewCell die Farbe eines Labels im Editmode ändern.
    Wichtig wäre noch zu erwähnen das ich Multiselection verwende.

    Die Farben setze ich in der Methode:

    - (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
    {

    cell.label_Expression.TextColor = [UIColor blackColor];
    cell.label_Expression.highlightedTextColor = [UIColor whiteColor];

    }


    die Higlighted Textcolor nimmt er nur beim normalen selektieren.
    Vielleicht kennt einer die Lösung, habe schon viel gegoogelt und auch in diversen Büchern gesucht.

    Vielen Dank im voraus.
  • Hallo MCDan,

    danke für die schnelle Antwort :)

    Ich habe folgendes in meiner CustomCell eingefügt.

    - (void)setEditing: (BOOL)editing animated: (BOOL)animated{
    [super setEditing:editing animated:animated];
    if (editing) {
    label_Expression.TextColor = [UIColor whiteColor];
    label_Result.TextColor = [UIColor whiteColor];
    }
    }

    Ich bin mir nicht ganz sicher ob du das gemeint hast.
    Leider ändert er jetzt von allen Cellen die Farbe im Editmode.
    ich brauche aber die selektierten.

    vielleicht kannst du mir noch einen kleinen Tip geben.

    vielen vielen Dank :)
  • Thallius schrieb:

    Wie wärs wenn du einfach nachsiehst welche selektiert sind und nur bei denen die farbe änderst?

    Ja leider habe ich keine Ahnung wie ich auf die selektierten Cellen in folgender Methode zugreifen kann.

    PHP-Quellcode

    1. - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. if (editingStyle == UITableViewCellEditingStyleDelete)
    4. {
    5. }
    6. }


    beziehungsweise bei

    PHP-Quellcode

    1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. }
  • nunja... scheinbar kann keine Doku oder Buch der Welt Abstraktionsvermögen vermitteln...

    In den Delegatemethoden übergibt sich der fragende Tableview als ersten Parameter doch selbst.

    Damit hast du alle Möglichkeiten in der Hand ihn all die Dinge zu fragen die du über ihn Wissen willst - zb welche Zellen in ihm grad Selektiert sind...
    snafu
    :() { :|: &};:
    sometimes i dream in hex
    Obey gravity! Because its a law!
  • Hallo chartus,

    ich weiß je welche Cellen selektiert sind (lösche ja auch die selektierten Daten im Array)
    Ich habe einfach einen hänger was den Zugriff auf meine selektierten Cell.Labels angeht.

    Wenn ich die Cellen erzeuge, dann setze ich

    cell.selectedBackgroundView = [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"Cell_History_Pressed.jpg"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0]];

    das übernimmt er ja auch mit im editmode.
    nur die Farbe der selektierten Labels von der jeweiligen Celle halt nicht.
  • In setEditing:animated:kannst Du auch prüfen, ob die Zelle selektiert ist. Dafür gibt es das Property selected bzw. isSelected.

    Dies würde dann etwa so aussehen:

    Quellcode

    1. - (void)setEditing:(BOOL)editing animated:(BOOL)animated
    2. {
    3. [super setEditing:editing animated:animated];
    4. if (editing)
    5. {
    6. if (self.isSelected)
    7. {
    8. label_Expression.TextColor = [UIColor whiteColor];
    9. label_Result.TextColor = [UIColor whiteColor];
    10. }
    11. else
    12. {
    13. //Farbe Editing ohne Selektion setzen...
    14. }
    15. }
    16. else
    17. {
    18. // Farbe kein Editing etc. ...
    19. }
    20. }
    Alles anzeigen
  • Weil ich das Forum nicht mehr benötige dank der APPLE DOKU nicht war Thallius??
    Habe hier also nichts mehr zu suchen.
    Im übrigen lösche ich nur ein paar bestimmte Beiträge.
    Ich bedanke mich bei all denen die mir hier wirklich geholfen.

    MCDan = vielen dank.

    Kunden wie Thallius hat das Forum nicht nötig.
    Dann lieber keine Antwort als blöde Beleidigungen.