Sie verwenden .Leading
Attribut überall! Verwenden Sie manchmal .Trailing
. Sie können die implizite Punktnotation verwenden, um Ihren Code kürzer und lesbarer zu machen. Normalerweise verwalten Sie Ansichten und Einschränkungen zusammen in xib oder zusammen im Code, selten getrennt. Weil es schwer zu erraten ist, wie Sie Ihre Scrollview und content konstruieren, können Sie mir zeigen, wie alles in Code getan werden kann, können Sie die einfache Nutzung Teile davon:
let scrollView = UIScrollView()
let contentView = UIView()
var twitterButton: UIButton!
var facebookButton: UIButton!
var googleButton: UIButton!
var checkButton: UIButton!
var mailButton: UIButton!
var redditButton: UIButton!
Zuerst müssen Sie die Einrichtung content richtig. Lassen Sie mich es als 'Tabellenansicht' Stil einrichten, nur vertikale Scroll. Alle folgenden Code sollte in viewDidLoad
geschrieben werden:
initializeAllButtons() // initialize all buttons first
view.addSubview(scrollView)
scrollView.translatesAutoresizingMaskIntoConstraints = false
view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Leading, relatedBy: .Equal, toItem: view, attribute: .Leading, multiplier: 1, constant: 0))
view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Top, relatedBy: .Equal, toItem: view, attribute: .Top, multiplier: 1, constant: 0))
view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Trailing, relatedBy: .Equal, toItem: view, attribute: .Trailing, multiplier: 1, constant: 0))
view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Bottom, relatedBy: .Equal, toItem: view, attribute: .Bottom, multiplier: 1, constant: 0))
scrollView.addSubview(contentView)
contentView.translatesAutoresizingMaskIntoConstraints = false
scrollView.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Leading, relatedBy: .Equal, toItem: contentView, attribute: .Leading, multiplier: 1, constant: 0))
scrollView.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Top, relatedBy: .Equal, toItem: contentView, attribute: .Top, multiplier: 1, constant: 0))
scrollView.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Trailing, relatedBy: .Equal, toItem: contentView, attribute: .Trailing, multiplier: 1, constant: 0))
scrollView.addConstraint(NSLayoutConstraint(item: scrollView, attribute: .Bottom, relatedBy: .Equal, toItem: contentView, attribute: .Bottom, multiplier: 1, constant: 0))
// next line prevent scrollView from horizontal scroll
view.addConstraint(NSLayoutConstraint(item: view, attribute: .Width, relatedBy: .Equal, toItem: contentView, attribute: .Width, multiplier: 1, constant: 0))
Jetzt müssen Sie Ihre Schaltflächen hinzufügen zu content und fügen Einschränkungen (initialisiert!):
contentView.addSubview(twitterButton)
contentView.addSubview(facebookButton)
contentView.addSubview(googleButton)
contentView.addSubview(checkButton)
contentView.addSubview(mailButton)
contentView.addSubview(redditButton)
twitterButton.translatesAutoresizingMaskIntoConstraints = false
facebookButton.translatesAutoresizingMaskIntoConstraints = false
googleButton.translatesAutoresizingMaskIntoConstraints = false
checkButton.translatesAutoresizingMaskIntoConstraints = false
mailButton.translatesAutoresizingMaskIntoConstraints = false
redditButton.translatesAutoresizingMaskIntoConstraints = false
Horizontale Beschränkungen (von Ihrem veröffentlicht):
contentView.addConstraint(NSLayoutConstraint(item: twitterButton, attribute: .Leading, relatedBy: .Equal, toItem: contentView, attribute: .Leading, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: facebookButton, attribute: .Leading, relatedBy: .Equal, toItem: twitterButton, attribute: .Trailing, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Leading, relatedBy: .Equal, toItem: facebookButton, attribute: .Trailing, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: checkButton, attribute: .Leading, relatedBy: .Equal, toItem: googleButton, attribute: .Trailing, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: mailButton, attribute: .Leading, relatedBy: .Equal, toItem: checkButton, attribute: .Trailing, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: redditButton, attribute: .Leading, relatedBy: .Equal, toItem: mailButton, attribute: .Trailing, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: contentView, attribute: .Trailing, relatedBy: .Equal, toItem: redditButton, attribute: .Trailing, multiplier: 1, constant:5))
Horizontal Bilder gleich Größenbeschränkungen:
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Width, relatedBy: .Equal, toItem: facebookButton, attribute: .Width, multiplier: 1, constant:0))
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Width, relatedBy: .Equal, toItem: twitterButton, attribute: .Width, multiplier: 1, constant:0))
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Width, relatedBy: .Equal, toItem: checkButton, attribute: .Width, multiplier: 1, constant:0))
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Width, relatedBy: .Equal, toItem: mailButton, attribute: .Width, multiplier: 1, constant:0))
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Width, relatedBy: .Equal, toItem: redditButton, attribute: .Width, multiplier: 1, constant:0))
Verhältnis Einschränkungen:
twitterButton.addConstraint(NSLayoutConstraint(item: twitterButton, attribute: .Width, relatedBy: .Equal, toItem: twitterButton, attribute: .Height, multiplier: 1, constant:0))
googleButton.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Width, relatedBy: .Equal, toItem: googleButton, attribute: .Height, multiplier: 1, constant:0))
facebookButton.addConstraint(NSLayoutConstraint(item: facebookButton, attribute: .Width, relatedBy: .Equal, toItem: facebookButton, attribute: .Height, multiplier: 1, constant:0))
checkButton.addConstraint(NSLayoutConstraint(item: checkButton, attribute: .Width, relatedBy: .Equal, toItem: checkButton, attribute: .Height, multiplier: 1, constant:0))
mailButton.addConstraint(NSLayoutConstraint(item: mailButton, attribute: .Width, relatedBy: .Equal, toItem: mailButton, attribute: .Height, multiplier: 1, constant:0))
redditButton.addConstraint(NSLayoutConstraint(item: redditButton, attribute: .Width, relatedBy: .Equal, toItem: redditButton, attribute: .Height, multiplier: 1, constant:0))
Top Einschränkungen:
contentView.addConstraint(NSLayoutConstraint(item: twitterButton, attribute: .Top, relatedBy: .Equal, toItem: contentView, attribute: .Top, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: facebookButton, attribute: .Top, relatedBy: .Equal, toItem: contentView, attribute: .Top, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Top, relatedBy: .Equal, toItem: contentView, attribute: .Top, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: checkButton, attribute: .Top, relatedBy: .Equal, toItem: contentView, attribute: .Top, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: mailButton, attribute: .Top, relatedBy: .Equal, toItem: contentView, attribute: .Top, multiplier: 1, constant:5))
contentView.addConstraint(NSLayoutConstraint(item: redditButton, attribute: .Top, relatedBy: .Equal, toItem: contentView, attribute: .Top, multiplier: 1, constant:5))
Bottom Einschränkungen:
contentView.addConstraint(NSLayoutConstraint(item: twitterButton, attribute: .Bottom, relatedBy: .Equal, toItem: contentView, attribute: . Bottom, multiplier: 1, constant:-5))
contentView.addConstraint(NSLayoutConstraint(item: facebookButton, attribute: .Bottom, relatedBy: .Equal, toItem: contentView, attribute: .Bottom, multiplier: 1, constant:-5))
contentView.addConstraint(NSLayoutConstraint(item: googleButton, attribute: .Bottom, relatedBy: .Equal, toItem: contentView, attribute: .Bottom, multiplier: 1, constant:-5))
contentView.addConstraint(NSLayoutConstraint(item: checkButton, attribute: .Bottom, relatedBy: .Equal, toItem: contentView, attribute: .Bottom, multiplier: 1, constant:-5))
contentView.addConstraint(NSLayoutConstraint(item: mailButton, attribute: .Bottom, relatedBy: .Equal, toItem: contentView, attribute: .Bottom, multiplier: 1, constant:-5))
contentView.addConstraint(NSLayoutConstraint(item: redditButton, attribute: .Bottom, relatedBy: .Equal, toItem: contentView, attribute: .Bottom, multiplier: 1, constant:-5))
Wo und wie schaffen Sie Ihre Tasten? Was ist der Zweck der scrollView? Wie sollen Ihre Knöpfe aussehen, sagen wir 4S, verringern Sie die Größe oder scrollen Sie sie, um alle zu sehen? – Andrej
1. Schaltflächen erstellt von IBOutlet und verbunden mit Code, 2. ScrollView ist meine UIScrollView, und auf 4s scrollview sollte Scroll sein. – aaK