PickerView immer an der aktuellen höhe in der View ausrichten? [ERLEDIGT]

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

  • PickerView immer an der aktuellen höhe in der View ausrichten? [ERLEDIGT]

    Guten Morgen,

    ich muss euch wieder mit meiner Unwissenheit belästigen ^^.

    Ich habe eine UITableViewController. Dort ist einer längere Tabelle drin, also scrollable. Bei mehreren Zellen, geht ein UIPickerView beim touch auf. Mein Porblem ist, dass wenn die Zelle weiter unten ist wird der Picker trotzdem oben angezeigt. Wie kann ich das so machen das der immer am aktuellen Nullpunkt des Sichtbaren bereich liegt?

    Lg

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lbremen ()

  • Da der TableView scrollable ist, ist es natürlich schwer einen View innerhalb des TableViews an einer fixen Stelle anzuzeigen.

    Hier gibt es verschiedene Lösungen:

    - Du setzt und positionierst den PickerView in den superview des TableViews bzw. ViewControllers.

    - Du setzt und positionierst den PickerView in das Window der App.

    - Du verwendest eine Subclass von UITableView und positionierst den PickerView beim Scrollen immer an der gewünschten Stelle.

    - Du verwendest einen ViewController anstelle eines TableViewControllers, somit hast Du einen reinen View als "Main View" des ViewControllers in welchem Du dann problemlos weitere Views hineinsetzen und positionieren kannst.

    Letzteres scheint mir hier die sauberste und einfachste Lösung zu sein, wobei Du dann allerdings kein UIRefreshControl mehr für den TableView verwenden kannst, da dieses nur bei einem TableViewController funktioniert. Keine Ahnung, was sich Apple dabei wieder gedacht hat.
  • ich möchte, dass der picker immer in dem im moment sichtbaren bereich oben ist. als wenn ich den button drück sitzt das ganze im sichtbaren bereich oben. wenn man nach dem drücken dann scrolled kann er ruhig da stehen bleiben, aber zum zeitpunkt der aufrufs soll er halt oben im aktuell sichtbaren bereich liegen.
    Ist das das aktuelle window dann?
  • Was meinst Du genau mit "wenn man nach dem drücken dann scrolled kann er ruhig da stehen bleiben"?

    Wenn der PickerView sich mit dem Inhalt des TableViews bewegen soll, dann musst Du diesen natürlich im TableView platzieren. Die Position im TablenView oben links erhältst Du über das Property contentOffset von UIScrollView und somit auch bei UITableView.

    UPDATE: Die Fixe Positionierung auf dem Screen lässt sich auch ohne Subclass von UITableView umsetzen. Du kannst den PickerView natürlich einfach in der Delegate Methode scrollViewDidScroll: mit Hilfe des contentOffset neu positionieren.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MCDan ()