Immer eine Zelle selektiert ...

  • Immer eine Zelle selektiert ...

    Hallo,

    ich habe ein TableView (1 Section und 3 Rows) ... Ich möchte sicherstellen, dass immer eine Zeile selektiert bleibt. Mein Problem ist, dass wenn ich unterhalb des TableViews in einen leeren Bereich tippe, die Row deselektiert wird und letztlich der User gar nicht sieht, was selektiert ist. Gesehen hab ich das beim iPhone Kalender. Wenn man da das Datum einstellt, bleibt immer entweder Start oder Ende selektiert auch wenn man in einen leeren Bereich tippt.

    Hilfe!
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!
  • Hm, das ist soweit ok, aber damit bekomme ich nicht das Verhindern der Deselektion einer Zeile hin. Ich kann da lediglich beim Selektieren mehr beeinflussen, aber nicht den Moment des Deselektierens. Da spring ich nämlich gar nicht dahinein.

    Oder hab ich da noch ne größere Lücke? ?(
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!
  • Original von contact
    Hm, das ist soweit ok, aber damit bekomme ich nicht das Verhindern der Deselektion einer Zeile hin. Ich kann da lediglich beim Selektieren mehr beeinflussen, aber nicht den Moment des Deselektierens. Da spring ich nämlich gar nicht dahinein.

    Oder hab ich da noch ne größere Lücke? ?(

    Ist Dir der Unterschied zwischen dem Setzen der Farbe und der tatsächlichen Selektion bekannt?
    Ein UITableView ändert seine Anzeige schon beim 'touchDown', die tatsächliche Selektierung aber erst beim 'touchUp'. Das sieht man bereits, wenn man drückt und dann doch noch scrollt.

    Was man dagegen machen kann, steht in der Beschreibung zur Methode, die Amin bereits heraus gekramt hat.
    I would be embarrassed if they did not spy on me.
  • Also offensichtlich ist meine Lücke soooo groß oder ich habs nicht verständlich rübergebracht.

    Macht doch mal nen TableView und zwar Grouped, mit einfach 2 Rows. Nehmen wir auch den DatePicker auf den View drauf (bottomline), somit hast du zwischen DatePicker und den Rows Platz und kannst ne Menge vom TableView-Background sehen (striped oder was auch immer).

    Wenn nun eine Row selektiert ist und du dann mit dem Finger auf den Hintergrund des TableViews tippst, verschwindet die Farbe (und wie ich jetzt weiß, die Selektion nicht und damit komm ich in willSelectRowAtIndexPath gar nicht rein). Der user sieht so zumindest nicht in welcher Zeile er mit dem Picker was ändert!

    Wenn ich das beim Kalender im iPhone mache wird die Row nicht deselektiert oder besser die Farbe wird nicht entfernt ...
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!
  • RE: Immer eine Zelle selektiert ...

    Ich würde dies gar nicht erst versuchen, da Apple diese Art der Selektion in einer Tabelle ablehnt und die App somit nicht für den App Store freigibt. Apple ist manchmal extrem pingelig, was die Einhaltung der Style-Guides angeht.

    Ist uns mit einer App schon selber passiert und wir mussten die Selektion gegen ein Checkmark austauschen, damit Apple wieder grünes Licht gibt. Eine "selektierte" Zeile sah zwar besser aus als dieses Checkmark, aber Apple sitzt nun mal am längeren Hebel.

    Laut Apple hat eine Selektion in einer Tabelle wie folgt auszusehen:

    - Eine Zeile wird beim Antippen mit einer Selektion versehen
    - Die Selektion verschwindet kurz darauf und die Zeile erhält ein Checkmark

    Evtl. ist anstelle des Checkmark auch eine andere Markierung möglich ausser dass die komplette Zeile wie eine Selektion aussieht. Allerdings kann es ein wenig dauern eine andere Markierung durch die Review zu bekommen. Von daher lieber gleich ein Checkmark verwenden, wenn man nicht ewig auf eine Freigabe warten möchte.
  • Am einfachsten ihr baut das mal auf die Schnelle nach und tippt mal in den Background, dann wisst ihr was ich meine .... Das ist jetzt nicht lebenswichtig, jedoch wundert mich dieses Verhalten, Farbe weg bei Tipp auf Background und beim iPhone-Kalender eben nicht...
    Um Rekursion zu verstehen, muss man erst Rekursion verstehen!