Ich habe 2 Verwirrung über ScrollView. Einer ist meine Hauptfrage, ein anderer ist sekundäre Verwirrung.Was genau sind contentOffset & contentInset von ScrollView
1.What genau contentOffse t & contentInset sind von Scroll. Ich werde mehr Details unten geben.
2.Ich erzeuge eine ScrollView, aber es scheint, dass die scrollView in keiner Richtung rollen kann. Ist das Problem mit Offset? ? Oder Einsatz .I geben mehr Einzelheiten unter
Details zu Frage 1:
Einige Zeit Content Eigenschaft & contentInset Eigenschaft scheinen viel Unterschied, aber wenn ich versuche, implementieren einige der Funktionen, die sich auf diese beiden Eigenschaften beziehen, beginne ich verwirrt. Und ich mache hier eine einfache Illustration. Können Sie mir es helfen, das herauszufinden, welcher Teil versetzt ist und welcher Teil ist Einschub: D
Details zu Frage 2:
I Funktion folgenden verwenden, um eine Scroll
hinzufügenfunc addScrollView(){
// assign a new ScrollView to "scroll" class member
scroll = UIScrollView(frame: CGRectZero)
scroll!.translatesAutoresizingMaskIntoConstraints = false
// change it to gray color to help recognising
scroll!.backgroundColor = UIColor.grayColor()
self.view.addSubview(scroll!)
//add some constraints,[you can neglect following part]
let x = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
self.view.addConstraint(x)
let y = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1/2, constant: 25)
self.view.addConstraint(y)
let left = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.LeadingMargin, multiplier: 1, constant: 10)
self.view.addConstraint(left)
let upperSpacing = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self.view, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 50)
self.view.addConstraint(upperSpacing)
let w = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.GreaterThanOrEqual, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 0, constant: 10)
self.view.addConstraint(w)
let h = NSLayoutConstraint(item: scroll!, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: scroll!, attribute: NSLayoutAttribute.Width, multiplier: 1, constant: 0)
self.view.addConstraint(h)
print("add scroll view Successed")
}
Und es ist nicht in der Lage zu rollen. Es kann nur wenige Dinge (Buttons oder TextFields ...) enthalten, um seine Größe zu füllen, anstatt mehr Dinge an Orte zu legen, wo wir nicht sehen können.
Also sind die Probleme über die Einstellung & Einfügung? Wie kann ich das beheben? Und wenn ich das tue, wie kann ich Dinge (Buttons ..) zu den nicht gezeigten Orten programmatisch hinzufügen?
Ich hoffe, du kannst mir ein paar Dinge erzählen !! Mit meinem unendlichen schätzen! (Ich meine es wirklich! Ich blockiere mich hier seit Tagen !!!)
Hallo Rob! Vielen Dank ! Und ich kann zuerst 2 folgen. Aber um die dritte zu vereinfachen, möchte ich bestätigen, dass die Dosis "scrollbarer Inhalt" einfach die Größe von scrollView bedeutet? – Microos
Nein, mit "scrollbarem Inhalt" bezog ich mich auf alle Teilansichten der Bildlaufansicht. Und wenn für alle diese Subviews die Einschränkungen vollständig definiert sind, wird die Inhaltsgröße der Bildlaufansicht berechnet und für Sie festgelegt. Stellen wir uns also vor, dass Ihre Scroll-Ansicht 480 Punkte groß ist, aber die Höhe (wie durch Einschränkungen vorgegeben) aller Unteransichten und deren Abstand zu 700 Punkten ("contentSize.height" ist 700), dann wäre es möglich Scrollen Sie innerhalb der 480-Punkt-Scroll-Ansicht um 700 Punkte nach oben und unten. – Rob