Ich habe andere Fragen und scheint immer noch einige Probleme beim Erstellen meiner scrollView mit dem automatischen Layout in swift 3 programmatisch. Ich bin in der Lage, meine scrollview zu sehen, wie in der Abbildung unten gezeigt, aber wann Ich scrolle nach unten, mein anderes Label erscheint nicht und das Label "scroll top" verschwindet nicht.Verwenden von ScrollView programmatisch in Swift 3
der Hoffnung, jemand meinen Code unten überprüfen kann helfen!
import UIKit
class ViewController: UIViewController {
let labelOne: UILabel = {
let label = UILabel()
label.text = "Scroll Top"
label.backgroundColor = .red
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let labelTwo: UILabel = {
let label = UILabel()
label.text = "Scroll Bottom"
label.backgroundColor = .green
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
override func viewDidLoad() {
super.viewDidLoad()
let screensize: CGRect = UIScreen.main.bounds
let screenWidth = screensize.width
let screenHeight = screensize.height
var scrollView: UIScrollView!
scrollView = UIScrollView(frame: CGRect(x: 0, y: 120, width: screenWidth, height: screenHeight))
scrollView.contentSize = CGSize(width: screenWidth, height: 2000)
scrollView.addSubview(labelOne)
scrollView.addSubview(labelTwo)
view.addSubview(labelOne)
view.addSubview(labelTwo)
view.addSubview(scrollView)
// Visual Format Constraints
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[v0]|", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": labelOne]))
view.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-100-[v0]", options: NSLayoutFormatOptions(), metrics: nil, views: ["v0": labelOne]))
// Using iOS 9 Constraints in order to place the label past the iPhone 7 view
view.addConstraint(NSLayoutConstraint(item: labelTwo, attribute: .top, relatedBy: .equal, toItem: labelOne, attribute: .bottom, multiplier: 1, constant: screenHeight + 200))
view.addConstraint(NSLayoutConstraint(item: labelTwo, attribute: .right, relatedBy: .equal, toItem: labelOne, attribute: .right, multiplier: 1, constant: 0))
view.addConstraint(NSLayoutConstraint(item: labelTwo, attribute: .left, relatedBy: .equal, toItem: labelOne, attribute: .left, multiplier: 1, constant: 0)
}
}
Warum Sie Ihre Etiketten Zugabe sowohl die Scrollview und die UIView? –
^Dies. Sie haben die Teilansichten der Ansicht hinzugefügt, nicht die Bildlaufansicht. Sie müssen außerdem einige Einschränkungen zwischen 'labelTwo' und' scrollView' aufstellen, damit 'scrollView' die Inhaltsgröße korrekt berechnen kann. – AdamPro13