UIScrollView nicht scrollen unabhängig von großen contentSize
Habe ich eine UIScrollView und fügte hinzu, Untersichten, um Sie im Interface Builder, aber ich bin nicht in der Lage, es zu bekommen, um zu scrollen. Ich habe mir ähnliche Fragen, aber ich habe mein contentSize angemessen. In der Tat, ich habe sogar versucht die Einstellung unglaublich große contentSize und es nicht zu einen Unterschied machen. Was bin ich? Beachten Sie, dass das UIScrollView ist ein IBOutlet:
@property (strong, nonatomic) IBOutlet UIScrollView *scroll;
Dies ist in meinen viewDidLoad:
self.scroll.scrollEnabled = YES;
[self.scroll setContentSize: CGSizeMake(2400,8000)];
Hier sind screenshots vom Interface Builder:
Hier ist die Sicht beim laufen, aber jeder Versuch bei horizontalen oder vertikalen Bildlauf an jedem Punkt funktioniert nicht.
Haben Sie im Zusammenhang mit
Ich glaube, so. Ich habe soeben einen screenshot von der referencing outlet. Ich habe auch versucht
könntest du bitte in Rahmen setzen, bevor Sie setContentSize? nur für einen Versuch.
Was soll ich den Rahmen?
nichts weniger als Ihre ContentSize.
IBOutlet
zum storyboard noch?Ich glaube, so. Ich habe soeben einen screenshot von der referencing outlet. Ich habe auch versucht
self.scroll.backgroundColor = [UIColor redColor];
und es funktioniert, so glaube ich, ist alles richtig verknüpft.könntest du bitte in Rahmen setzen, bevor Sie setContentSize? nur für einen Versuch.
Was soll ich den Rahmen?
nichts weniger als Ihre ContentSize.
InformationsquelleAutor golddove | 2014-01-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Drehen, Auto-Layout-off funktioniert, aber das ist nicht die Lösung. Wenn Sie wirklich brauchen, "Auto-Layout", dann verwenden Sie es, wenn Sie es nicht brauchen, schalten Sie es aus. Aber das ist nicht der richtige fix für diese Lösung.
UIScrollView
anders funktioniert, mit anderen Ansichten in "Auto-Layout". Hier ist Apples release-note auf Auto-Layout, ich habe kopiert das interessante bit, (Hervorhebung von mir, auf den Dritten Aufzählungspunkt):Apple geht dann zum Beispiel zeigen, wie man richtig mit
UIScrollView
mit Auto-Layout".Als eine Allgemeine Regel, von der einfachste fix ist, erstellen Sie eine Einschränkung, die zwischen dem element an der Unterseite der UIScrollView. Also in das element, das Sie wollen an der Unterseite der UIScrollView, erstellen Sie diesen unteren Raum Einschränkung:
Wieder, wenn Sie nicht möchten, verwenden Sie Auto-Layout", dann schalten Sie es aus. Sie können dann die
contentSize
den üblichen Weg. Aber was sollten Sie verstehen, dass dies ein beabsichtigtes Verhalten von "Auto-Layout".Meine Vermutung ist, dass bisher gibt es keine Einschränkungen, zu sagen: "der Inhalt muss mindestens so viel!", und der compiler ignoriert die
setContentSize:
nennen, weil es nur einen Blick auf Ihre Einschränkungen zu sehen, wie viel Inhalt gibt es in der scroll-Ansicht.Ich hatte ein sehr ähnliches problem. Ich habe versucht, erstellen Sie eine scroll-Ansicht von text-Felder, die wachsen, und Blättern Sie zu bleiben auf dem Bildschirm. Einstellung der unteren Randbedingung mein problem gelöst!
InformationsquelleAutor Enrico Susatyo
Deaktivieren autolayot von
Wählen Sie
ViewController
dannfile inspecto
r und ininterface builder document
finden SieUse Autolayout
überprüft oder nicht. Wenn Ihr kontrolliert, dannuncheck
.Diese info UIScrollView Und Autolayout können uns die details.
InformationsquelleAutor Akhilrajtr
Versuchen, diesen code zu auto set-Inhalt Größe
ersten kopieren und fügen Sie den view-controller in der viewDidLoad-Methode
dann kopieren und einfügen in unten viewDidLoad-Methode
verbinden YOUR_SCROLLVIEW delegieren, auch und TextFeild auch Delegieren
Happy Coding!!!
InformationsquelleAutor kagmanoj
Wenn Sie mit auto-layout, als Steckte alles in der UIScrollView in ein anderes UIView und legte UIView als das einzige Kind der UIScrollView. Dann können Sie verwenden, AutoLayout.
Wenn Dinge am Ende versaut ist (das Ende der Himmelsrichtung, in die Ihre UIScrollView Schriftrollen), ändern Sie die Einschränkung am Ende haben die niedrigste Priorität.
InformationsquelleAutor Rahul Patoliya