___ answer47149543 ___

Für mich war Daniels Lösung sehr hilfreich, funktionierte aber nicht. Hier sind die aktualisierten Schritte:

1) Fügen Sie im Storyboard eine Bildlaufansicht hinzu und beschränken Sie die Kanten auf die Kanten der Hauptansicht oder auf andere geeignete Weise

2) Fügen Sie in der Bildlaufansicht eine einfache alte UIView als Container hinzu. Beschränken Sie sie auf alle 4 Kanten der Bildlaufansicht, ABER HINZUFÜGEN Sie auch eine Einschränkung der gleichen Breite relativ zur übergeordneten Bildlaufansicht (höchste Ansicht) und eine Beschränkung gleicher Höhe auf die übergeordnete Ansicht der Bildlaufansicht

3) Sehr wichtig: setze eine niedrige Priorität für die Beschränkung gleicher Höhe, z. 250.

    
___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ tag123objectivec ___ Dieses Tag sollte nur bei Fragen verwendet werden, die sich auf Objective-C-Features beziehen oder von Code in der Sprache abhängen. Die Tags [Kakao] und [Kakao-Touch] sollten verwendet werden, um nach Frameworks oder Klassen von Apple zu fragen. Verwenden Sie die zugehörigen Tags [ios], [macos], [apple-watch] und [tvos] für Probleme, die für diese Plattformen spezifisch sind. ___ tag123uiscrollview ___ Verwenden Sie dieses Tag für alle Fragen zu Bildlaufansichten auf iOS. Verwenden Sie diesen Tag NICHT für andere Plattformen. ___ answer38490180 ___

Versuchen Sie, die Höhe der Laufzeit des Moduls zu definieren und die automatische Layout-Integritätsbedingung für Module programmgesteuert hinzuzufügen.

%Vor%     
___ tag123xcodestoreboard ___ Ein Storyboard ist eine visuelle Darstellung der Benutzeroberfläche einer iOS-, tvOS-, watchOS- oder macOS-Anwendung, die Bildschirme mit Inhalten und die Verbindungen zwischen diesen Bildschirmen zeigt. ___ answer38490773 ___

Ich war in der Lage, dynamische Scroll-Ansichten zu erstellen, die komplett aus Storyboards, ohne Code, bestehen, mit den folgenden Schritten:

1) Fügen Sie im Storyboard eine Bildlaufansicht hinzu und beschränken Sie die Kanten auf die Kanten der Hauptansicht oder auf andere geeignete Weise

2) Fügen Sie in der Bildlaufansicht eine einfache alte UIView als Container hinzu. Beschränken Sie es auf alle 4 Kanten der Bildlaufansicht, ABER HINZUFÜGEN Sie außerdem eine Einschränkung gleiche Breite relativ zur Bildlaufansicht und eine Beschränkung gleiche Höhe für die Bildlaufansicht

3) Sehr wichtig: setze eine niedrige Priorität für die Beschränkung gleicher Höhe, z. 250.

4) Fügen Sie in der Containeransicht, die Sie in Schritt 2 hinzugefügt haben, Ihre drei Module hinzu. Beschränken Sie die Oberkante des ersten Moduls an den Anfang der Containeransicht, legen Sie die Unterkante des letzten Moduls an den unteren Rand der Containeransicht fest, und beschränken Sie alle Zwischenmodule auf das vorherige Modul in der Kette. Dies sollte Ihnen die Kette ungebrochener vertikaler Beschränkungen innerhalb der Containeransicht geben. Sie müssen jedem Modul auch die geeigneten x-Positionierungs- / Breiteneinschränkungen hinzufügen.

5) Baue und laufe! Die Inhaltsgröße für die Bildlaufansicht sollte automatisch der Gesamthöhe aller Module und dem Abstand zwischen ihnen entsprechen. Wenn Sie den Inhalt des Moduls dynamisch ändern, wird die Inhaltsgröße der Bildlaufansicht über das automatische Layout aktualisiert, sodass kein expliziter Code berechnet und aktualisiert werden muss. p>     

___ qstntxt ___

Ich habe tatsächlich Schwierigkeiten, meinen %code% vollständig reaktionsfähig zu machen, indem ich nur Storyboard-Einschränkungen verwende.

Hier ist meine Hierarchie:

%Vor%

Alle Module werden zum Anzeigen von Diagrammen verwendet. Ich möchte, dass sie reagieren . Ich möchte, dass ihre Breite 100% des Bildschirms beträgt und dass ihre Höhe durch ein ratio definiert wird, das mithilfe von Constraint hinzugefügt wird. Die Module werden nebeneinander wie Nachrichten in einem Newsfeed angezeigt.

Meine Frage ist: Wie setzt man die %code% height auf die Summe aller Module (Modul 1 + 2 + 3)?

Mit anderen Worten möchte ich erreichen:

  
  • Anfang des InhaltsView = oberstes von Modul 1
  •   
  • Oberseite von Modul 2 = Unterseite von Modul 1
  •   
  • Oberseite von Modul 2 = Unterseite von Modul 2
  •   
  • Unten von contentView = unten von Modul 3
  •   

Um das zu tun, folge ich ein Tutorial im Internet gefunden. Hier sind die Schritte, denen ich gefolgt bin:

  1. Wenn Sie %code% constraints festlegen, wird der Ort und die Position definiert.
  2. Setzen Sie %code% oben , unten , links und den rechten Abstand auf den nächsten Nachbarn von 0 .
  3. Setzen Sie die Einschränkung zwischen den Modulen, um sie auf einem Stapel zu "stapeln" andere.
  4. (Ich bin hier blockiert) Setzen Sie den unteren Rand von %code% auf den Wert unten in Modul 3, damit %code% bis zum Ende scrollen kann Inhalt.

Ich habe versucht, die Höhe von %code% zu erzwingen: Es funktioniert, aber es reagiert nicht. Da die Höhe des Moduls durch ein Verhältnis berechnet wird, ändert sich je nach Gerät die Höhe "Modul 1 + 2 + 3" während der Änderung.

Ich habe versucht, eine Einschränkung von Modul 3 zu %code% hinzuzufügen, um den unteren Teil von Modul 3 = unten von %code% zu setzen. Alle Beschränkungen werden überall rot mit Warnung.

Haben Sie eine Idee, wie Sie die Höhe von %code% basierend auf einem responsiven Inhalt einstellen können? (Wie "Wrap-Content in einer Weise).

Vielen Dank im Voraus für Sie Hilfe!

    
___

9

Ich habe tatsächlich Schwierigkeiten, meinen UIScrollView vollständig reaktionsfähig zu machen, indem ich nur Storyboard-Einschränkungen verwende.

Hier ist meine Hierarchie:

%Vor%

Alle Module werden zum Anzeigen von Diagrammen verwendet. Ich möchte, dass sie reagieren . Ich möchte, dass ihre Breite 100% des Bildschirms beträgt und dass ihre Höhe durch ein ratio definiert wird, das mithilfe von Constraint hinzugefügt wird. Die Module werden nebeneinander wie Nachrichten in einem Newsfeed angezeigt.

Meine Frage ist: Wie setzt man die contentView height auf die Summe aller Module (Modul 1 + 2 + 3)?

Mit anderen Worten möchte ich erreichen:

  
  • Anfang des InhaltsView = oberstes von Modul 1
  •   
  • Oberseite von Modul 2 = Unterseite von Modul 1
  •   
  • Oberseite von Modul 2 = Unterseite von Modul 2
  •   
  • Unten von contentView = unten von Modul 3
  •   

Um das zu tun, folge ich ein Tutorial im Internet gefunden. Hier sind die Schritte, denen ich gefolgt bin:

  1. Wenn Sie UIScrollView constraints festlegen, wird der Ort und die Position definiert.
  2. Setzen Sie UIScrollView oben , unten , links und den rechten Abstand auf den nächsten Nachbarn von 0 .
  3. Setzen Sie die Einschränkung zwischen den Modulen, um sie auf einem Stapel zu "stapeln" andere.
  4. (Ich bin hier blockiert) Setzen Sie den unteren Rand von contentView auf den Wert unten in Modul 3, damit UIScrollview bis zum Ende scrollen kann Inhalt.

Ich habe versucht, die Höhe von UIScrollView zu erzwingen: Es funktioniert, aber es reagiert nicht. Da die Höhe des Moduls durch ein Verhältnis berechnet wird, ändert sich je nach Gerät die Höhe "Modul 1 + 2 + 3" während der Änderung.

Ich habe versucht, eine Einschränkung von Modul 3 zu contentView hinzuzufügen, um den unteren Teil von Modul 3 = unten von contentView zu setzen. Alle Beschränkungen werden überall rot mit Warnung.

Haben Sie eine Idee, wie Sie die Höhe von contentView basierend auf einem responsiven Inhalt einstellen können? (Wie "Wrap-Content in einer Weise).

Vielen Dank im Voraus für Sie Hilfe!

    
Tom Giraudet 20.07.2016, 15:47
quelle

3 Antworten

31

Ich war in der Lage, dynamische Scroll-Ansichten zu erstellen, die komplett aus Storyboards, ohne Code, bestehen, mit den folgenden Schritten:

1) Fügen Sie im Storyboard eine Bildlaufansicht hinzu und beschränken Sie die Kanten auf die Kanten der Hauptansicht oder auf andere geeignete Weise

2) Fügen Sie in der Bildlaufansicht eine einfache alte UIView als Container hinzu. Beschränken Sie es auf alle 4 Kanten der Bildlaufansicht, ABER HINZUFÜGEN Sie außerdem eine Einschränkung gleiche Breite relativ zur Bildlaufansicht und eine Beschränkung gleiche Höhe für die Bildlaufansicht

3) Sehr wichtig: setze eine niedrige Priorität für die Beschränkung gleicher Höhe, z. 250.

4) Fügen Sie in der Containeransicht, die Sie in Schritt 2 hinzugefügt haben, Ihre drei Module hinzu. Beschränken Sie die Oberkante des ersten Moduls an den Anfang der Containeransicht, legen Sie die Unterkante des letzten Moduls an den unteren Rand der Containeransicht fest, und beschränken Sie alle Zwischenmodule auf das vorherige Modul in der Kette. Dies sollte Ihnen die Kette ungebrochener vertikaler Beschränkungen innerhalb der Containeransicht geben. Sie müssen jedem Modul auch die geeigneten x-Positionierungs- / Breiteneinschränkungen hinzufügen.

5) Baue und laufe! Die Inhaltsgröße für die Bildlaufansicht sollte automatisch der Gesamthöhe aller Module und dem Abstand zwischen ihnen entsprechen. Wenn Sie den Inhalt des Moduls dynamisch ändern, wird die Inhaltsgröße der Bildlaufansicht über das automatische Layout aktualisiert, sodass kein expliziter Code berechnet und aktualisiert werden muss. p>     

Daniel Hall 20.07.2016, 21:00
quelle
0

Versuchen Sie, die Höhe der Laufzeit des Moduls zu definieren und die automatische Layout-Integritätsbedingung für Module programmgesteuert hinzuzufügen.

%Vor%     
Komal 20.07.2016 20:22
quelle
0

Für mich war Daniels Lösung sehr hilfreich, funktionierte aber nicht. Hier sind die aktualisierten Schritte:

1) Fügen Sie im Storyboard eine Bildlaufansicht hinzu und beschränken Sie die Kanten auf die Kanten der Hauptansicht oder auf andere geeignete Weise

2) Fügen Sie in der Bildlaufansicht eine einfache alte UIView als Container hinzu. Beschränken Sie sie auf alle 4 Kanten der Bildlaufansicht, ABER HINZUFÜGEN Sie auch eine Einschränkung der gleichen Breite relativ zur übergeordneten Bildlaufansicht (höchste Ansicht) und eine Beschränkung gleicher Höhe auf die übergeordnete Ansicht der Bildlaufansicht

3) Sehr wichtig: setze eine niedrige Priorität für die Beschränkung gleicher Höhe, z. 250.

    
FrenchFalcon 07.11.2017 03:34
quelle