‘n Abend!
Ich muss mir mal den Frust von der Seele schreiben:
Ihr erinnert Euch vielleicht an die „tollen“ Seiteneffekte, die ich mit dem UISearchController in Verbindung mit nicht-transparenter UINavigationBar hatte (Link)? Oder an den contentOffset einer UITableView, der sich bei variablen Zeilenhöhen ändert (Link)? Heute Nachmittag hatte ich Spass mit den Trennlinien einer UITableView ... aber der Reihe nach:
Ich möchte, das eine selektierte Zelle keine andere Hintergrundfarbe erhält, sonder die Textfarbe verändert wird. Trotzdem muss ich UITableViewCellSelectionStyleDefault verwenden, damit weiterhin auf Selektionen reagiert wird. Also setze ich eine selectedBackgroundView mit entsprechender Farbe. Von diesem Moment an werden die Trennlinien bei selektierten Zellen nicht mehr angezeigt, auf SO gibt es viele Hacks dazu, aber keine saubere Lösung.
Letzlich werden die Alphawerte der entsprechenden Subviews („_UITableViewCellSeparatorView") auf 0 gesetzt. Ein Ändern ist nicht so leicht, da deren Anzeigen von der Position der Zelle abhängig ist und bei Selektion auch die Zelle oberhalb geändert werden muss.
Ich habe nun 5h verschiedenste Ansätze ausprobiert, alle erscheinen mir irgendwie hacky und ich habe nun einfach alle Trennlinien ausgeblendet, damit die Anzeige wenigstens konsistent ist. Vielleicht lasse ich auch die selectedBackgroundView weg und lebe mit dem grauen Hintergrund.
Auf jeden Fall wieder ein Beispiel, wo etwas nicht funktioniert, obwohl das Verfahren so dokumentiert ist. Da es nicht dem „normalen“ Standardverhalten von Apple entspricht, wurde es wohl nicht getestet ... und der Effekt besteht angeblich seit iOS 7!
Ein Nachmittag für‘n A... und keine zufriedenstellende Lösung. Ich krieg jetzt ein Bier
Mattes
Ich muss mir mal den Frust von der Seele schreiben:
Ihr erinnert Euch vielleicht an die „tollen“ Seiteneffekte, die ich mit dem UISearchController in Verbindung mit nicht-transparenter UINavigationBar hatte (Link)? Oder an den contentOffset einer UITableView, der sich bei variablen Zeilenhöhen ändert (Link)? Heute Nachmittag hatte ich Spass mit den Trennlinien einer UITableView ... aber der Reihe nach:
Ich möchte, das eine selektierte Zelle keine andere Hintergrundfarbe erhält, sonder die Textfarbe verändert wird. Trotzdem muss ich UITableViewCellSelectionStyleDefault verwenden, damit weiterhin auf Selektionen reagiert wird. Also setze ich eine selectedBackgroundView mit entsprechender Farbe. Von diesem Moment an werden die Trennlinien bei selektierten Zellen nicht mehr angezeigt, auf SO gibt es viele Hacks dazu, aber keine saubere Lösung.
Letzlich werden die Alphawerte der entsprechenden Subviews („_UITableViewCellSeparatorView") auf 0 gesetzt. Ein Ändern ist nicht so leicht, da deren Anzeigen von der Position der Zelle abhängig ist und bei Selektion auch die Zelle oberhalb geändert werden muss.
Ich habe nun 5h verschiedenste Ansätze ausprobiert, alle erscheinen mir irgendwie hacky und ich habe nun einfach alle Trennlinien ausgeblendet, damit die Anzeige wenigstens konsistent ist. Vielleicht lasse ich auch die selectedBackgroundView weg und lebe mit dem grauen Hintergrund.
Auf jeden Fall wieder ein Beispiel, wo etwas nicht funktioniert, obwohl das Verfahren so dokumentiert ist. Da es nicht dem „normalen“ Standardverhalten von Apple entspricht, wurde es wohl nicht getestet ... und der Effekt besteht angeblich seit iOS 7!
Ein Nachmittag für‘n A... und keine zufriedenstellende Lösung. Ich krieg jetzt ein Bier
Mattes
Diese Seite bleibt aus technischen Gründen unbedruckt.