Ich habe meinen Code so abgespeckt, dass er einfach zu verstehen ist.UIScrollerView kann nicht mit reinen Auto-Layout-Einschränkungen erstellt werden
Angenommen, Sie haben einen Controller und möchten einen einfachen Scroller mit reinem Auto-Layout hinzufügen.
Sie können meine Funktionswerkzeug (zur Verfügung gestellt unten) wie folgt aufrufen:
// Create scroll view
let strip = addStripCategoryTo(view)
// Attach it to the view, vertically and horizontally
strip.topAnchor.constraintEqualToAnchor(view.topAnchor).active = true
strip.leftAnchor.constraintEqualToAnchor(view.leftAnchor).active = true
// The function
func addStripCategoryTo(parent: UIView) -> UIView {
let h:CGFloat = 128
let w = 2*h/3
let n = 5
let width = w * CGFloat(n)
let height = h
// Scroll view
let scrollview = UIScrollView()
parent.addSubview(scrollview)
scrollview.scrollEnabled = true
scrollview.translatesAutoresizingMaskIntoConstraints = false
scrollview.widthAnchor .constraintEqualToAnchor(parent.widthAnchor).active = true
scrollview.heightAnchor.constraintEqualToConstant(h).active = true
scrollview.layer.borderWidth = 2
scrollview.layer.borderColor = UIColor.greenColor().CGColor
scrollview.backgroundColor = UIColor.brownColor()
// Scroll view content
let contentView = UIView() //frame:CGRect(origin: CGPointZero, size:CGSize(width: width, height: height)))
scrollview.addSubview(contentView)
contentView.backgroundColor = UIColor.redColor()
contentView.layer.borderWidth = 10
contentView.layer.borderColor = UIColor.blueColor().CGColor
contentView.translatesAutoresizingMaskIntoConstraints = false
contentView.centerYAnchor.constraintEqualToAnchor(scrollview.centerYAnchor).active = true
contentView.widthAnchor .constraintEqualToConstant(width).active = true
contentView.heightAnchor.constraintEqualToConstant(height).active = true
return scrollview
}
Leider kann ich es nicht horizontal scrollen, siehe Screenshot wie folgt:
Was bin ich fehlt ?
Es spielt keine (leider habe ich eine fehlende Zeile aus meinem Code und einem Screenshot hinzugefügt). –
versuchen, Benutzerinteraktion zu aktivieren diese Zeile hinzuzufügen, 'scrollview.userInteractionEnabled = true 'Ich bin mir nicht sicher, aber versuchen, wenn es lösen kann – Lion
Das gleiche, kein Scrollen. –