Wie erkläre ich meinem ScrollView, dass es horizontal den Inhalt skalieren soll und vertikal scrollen?

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

  • Wie erkläre ich meinem ScrollView, dass es horizontal den Inhalt skalieren soll und vertikal scrollen?

    Hi,

    Autolayout ist immer wieder eine Herausforderung für mich...

    Ich habe einen DetailView in diesen habe ich einen ScrollView gelegt. Diesem habe ich als Constraints leading/trailing/top/bottom zum Superview = 0 gegeben. Ist auch alles fein soweit.
    In diesen ScrollView habe ich nun meinen ContentView gelegt. Dieser beinhaltet unzählige Labels und Textfield etc, welche alle via top/leading/trailing to superview mit constrains verbunden sind. so dass sie ich automatisch in der Breit ändern wenn sich der ContentView ändert.

    Der ContentView selber hat leading/trailing/top/bottom zum Superview auf 0 gesetzt und einen zusätzlichen Constraint mit der Höhe 560. Dadruch kann ich nun vertikal scrollen. Alles soweit schick

    Mein Ziel ist es nun, dass die Breite des ContentViews sich an die Breite des Scrollvies anpasst, egal auf welchem Device ich gerade bin. Das tut sie aber nicht. Im gegenteil auch diese ist fix obwohl ich keine width constraints gesetzt habe. Das führt bei schmalleren Displays dazu, dass das scrollview auch horizontal scroll und bei breiteren, dass die Label und Textfields nicht der breit angepasst werden.

    Wie kann ich nun mein Ziel erreichen? Muss ich da jetzt programmatisch die contentSize setzen oder wie geht das? Auf Wunsch kann ich euch auch gerne einen Download meines Projektes zur Verfügung stellen und ihr könnt euch das selber mal ansehen.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Den content view mit 0/0/0/0 antaggen und dann eine höhe definieren kann wohl nicht funktionieren oder denn entweder es hat eine fixe höhe oder es hat die gleiche höhe wie die scrollview. Da es aber wohl keine warnings/execptions gibt, wird die angabe zum content-view komplett ignoriert woher dann auch das problem kommen würde dass es horizontal nicht skaliert.
    Lass dir mal zur Laufzeit die constraints anzeigen bzw setze einen breakpoint und schau sie dir dann im GUI-debugger an.
  • Selbst wenn das nicht richtig ist, dass hat mit der horizontalen Breite überhaupt nichts zu tun.

    So wie ich das verstanden habe, kann man auf diese Art und Weise dem scrollView seinen ContentSize angeben ohne sie im code setzen zu müssen. funktioniert ja auch fürs vertikale scrollen einwandfrei.

    Nur leider scrollt er eben auch horizontal obwohl ich da keine extra width angegeben habe
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)