Ich habe:
Ich habe eine Warnung im Interface-Builder "hat mehrdeutige scrollbare Inhaltsbreite" .
Der einzige Weg, dieses Problem zu beheben, ist, wie ich weiß - die Einstellung von Nachlauf- und Führungsbeschränkungen. Aber für verschiedene iPhones (5,5 ", 4,7", 4 ") muss ich unterschiedliche Nachlauf- und Führungsbeschränkungen festlegen.
Wie kann ich diese Warnung beseitigen und trotzdem die horizontale Ansicht mit festem W und H für alle iPhone-Größen zentriert haben?
Ich erstelle ein Github-Repo, um dieses Problem zu veranschaulichen: ScrollViewAmbigous
Dies ist kein Duplikat von UIScrollView Scrollable Content Size Ambiguity , Aber es ist ähnlich (und wird nicht beantwortet, obwohl), aber diese Frage bezog sich insbesondere auf unterschiedliche Größen von iPhones.
Am Morgen mit einer frischen Tasse Kaffee fand ich den Workaround für diese Ausgabe!
Has ambiguous scrollable content width
und Has ambiguous scrollable content height
lästige Warnungen.Wichtig: Sie müssen nachlaufende und/oder untere - Einschränkungen hinzufügen. Nicht "führen und top" - es funktioniert nicht!
Sie können dies in meinem Beispielprojekt überprüfen, das zeigt, wie dieses Problem behoben werden kann: ScrollViewAmbigous
P.S.
Ich weiß nicht, warum es funktioniert und wie Xcode erkennt, welche Einschränkung mehr Priorität hat (weil ich für diese Einschränkungen keine Priorität habe), aber ich bin dankbar, wenn jemand erklärt, warum dies in Kommentaren unten funktioniert.
Problem :
Lösung :
Fügen Sie diesem 'contentView' strenge (feste) Einschränkungen hinzu.
Bewährte Methode: Breite und Höhe der Bildlaufansicht gleich.
Es scheint viel Verwirrung in dieser Frage zu geben. Meiner Meinung nach muss ein UIScrollViewZWEInachlaufende Raumbeschränkungen haben, eine "innere", die es mit einer seiner Unteransichten verbindet (damit es seine Inhaltsbreite kennt) und eine andere "äußere", mit der es verbunden ist ein Geschwister oder ein Überblick, so dass es seine Rahmenbreite kennt.
Dasselbe Prinzip gilt für die Höhe, d. H. Zwei Einschränkungen für den unteren Raum.