Ich habe ein Layout wie folgt (mit Autolayout, iPad):Größe UIView in UIScrollView mit AutoLayout für Scrollen?
Die UIScrollView
hat oben, unten, führt, den Raum zum Superview als 0. Der Nachgestellte UIView
auch alle vier ähnlichen Einschränkungen hat. Die zweite UILabel
hat ihre Höhe programmgesteuert auf 0 gesetzt (da mehr als ein Bildschirm voller Text hier angezeigt wird). Diese Vier-Pin-Beschränkungen wurden auch von der UIView
bis UIScrollView
aufgestellt.
Wenn die XIB geladen ist, zeigt diese UILabel
lange Textzeilen korrekt. Scrollen funktioniert jedoch nicht. Dies ist ein Screenshot von der laufenden Anwendung auf einem IPAD:
Der gelbe Hintergrund für die äußerste Ansicht und die grauen eines für die UIView
eingestellt ist. Wenn Sie am Ende des Screenshots genau sehen, scheint der Text UILabel
über die UIView
hinaus zu fließen.
Ich vermute, dass, weil die UIView
nicht „einfangen“ die Größe der es Subviews ist, kann die UIScrollView
nicht berechnen es ist content zu (es gibt keinen Grund für die Scrollbar, wenn ihr Inhalt nur zur Ansicht gleich einem Bildschirm zu arbeiten). Warum passiert das, obwohl die UILabel
eindeutig eine Unteransicht der UIView
ist? Wenn mein Verdacht richtig ist, wie setze ich die UIView
Höhe gleich der tatsächlichen Inhaltsgröße, so dass mein UILabel
richtig darin "enthalten" ist?
(Einstellung der UIView
Höhe, Breite statisch ist keine Option).
Hinweis: Getestet wurde die XIB ohne UIView
und nur eine einzige UILabel
(mit langem Text) innerhalb einer UIScrollView
. Jetzt funktioniert das Scrollen (da, wie ich annehme, die Bildlaufansicht ihre Inhaltsgröße berechnen kann).
NB2: Ich habe auch versucht, die Antworten in this SO question und this post aber meine UIView
einfach nicht über die Abmessungen des Bildschirms zu erweitern. (Ich interessiere mich nur für horizontale Scrolling)
Das war unglaublich toll! Der Trick bestand darin, eine andere "UIView" ** außerhalb des "UIScrollView" zu haben und dann "Gleiche Höhen und Breiten" von der * inneren * 'UIView' auf die ** äußere ** 'UIView' zu beschränken. Vielen Dank! –
Ihre Begrüßung. Und zögern Sie nicht, um weitere Hilfe zu bitten ... –
Mein Tag gerettet! ..und für alle, die daran interessiert sind, setze ich "Gleiche Breite" und "Gleiche Höhe" von der inneren UIView zum scrollView selbst. –