Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (
- "<NSLayoutConstraint:0x7ac57370 H:[UIView:0x7a96b6f0(0)]>",
- "<NSLayoutConstraint:0x7ac57400 H:|-(8)-[UILabel:0x7a96bb50'Username:'] (Names: '|':UIView:0x7a96b6f0 )>",
- "<NSLayoutConstraint:0x7ac57430 UILabel:0x7a96bb50'Username:'.trailing == UITextField:0x7a961020.leading + 8>",
- "<NSLayoutConstraint:0x7ac57520 UITextField:0x7a961020.trailing == UIView:0x7a96b6f0.trailing - 8>" )
- import UIKit
- class ViewController: UIViewController {
- let centerView = UIView()
- let usernameLabel = UILabel()
- let passwordLabel = UILabel()
- let usernameField = UITextField()
- let passwordField = UITextField()
- let submitButton = UIButton()
- override func viewDidLoad() {
- super.viewDidLoad()
- centerView.backgroundColor = UIColor.yellowColor()
- usernameLabel.text = "Username:"
- passwordLabel.text = "Password:"
- usernameField.borderStyle = .RoundedRect
- passwordField.borderStyle = .RoundedRect
- submitButton.setTitle("Submit!", forState: .Normal)
- submitButton.setTitleColor(UIColor.blackColor(), forState: .Normal)
- submitButton.setTitleColor(UIColor.blueColor(), forState: .Highlighted)
- view.addSubview(centerView)
- self.centerView.addSubview(usernameField)
- self.centerView.addSubview(passwordField)
- self.centerView.addSubview(usernameLabel)
- self.centerView.addSubview(submitButton)
- let constraintCenterViewHeight = NSLayoutConstraint(item: centerView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 0)
- let constraintCenterViewWidth = NSLayoutConstraint(item: centerView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 0)
- let constraintCenterViewCenterX = NSLayoutConstraint(item: centerView, attribute: .CenterX, relatedBy: .Equal, toItem: view, attribute: .CenterX, multiplier: 1.0, constant: 0)
- let constraintCenterViewCenterY = NSLayoutConstraint(item: centerView, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1.0, constant: 0)
- let constraintUsernameLabelHLeading = NSLayoutConstraint(item: usernameLabel, attribute: .Leading, relatedBy: .Equal, toItem: centerView, attribute: .Leading, multiplier: 1.0, constant: 8)
- let constraintUsernameLabelHTrailing = NSLayoutConstraint(item: usernameLabel, attribute: .Trailing, relatedBy: .Equal, toItem: usernameField, attribute: .Leading, multiplier: 1.0, constant: 8)
- let constraintUsernameLabelAlignBottom = NSLayoutConstraint(item: usernameLabel, attribute: .Bottom, relatedBy: .Equal, toItem: usernameField, attribute: .Bottom, multiplier: 1.0, constant: 0)
- let constraintUsernameFieldVTop = NSLayoutConstraint(item: usernameField, attribute: .Top, relatedBy: .Equal, toItem: centerView, attribute: .Top, multiplier: 1.0, constant: 8)
- let constraintUsernameFieldHTrailing = NSLayoutConstraint(item: usernameField, attribute: .Trailing, relatedBy: .Equal, toItem: centerView, attribute: .Trailing, multiplier: 1.0, constant: -8)
- let constraintUsernameFieldVBottom = NSLayoutConstraint(item: usernameField, attribute: .Bottom, relatedBy: .Equal, toItem: passwordField, attribute: .Top, multiplier: 1.0, constant: 8)
- let constraintPasswordLabelHLeading = NSLayoutConstraint(item: passwordLabel, attribute: .Leading, relatedBy: .Equal, toItem: centerView, attribute: .Leading, multiplier: 1.0, constant: 8)
- let constraintPasswordLabelHTrailing = NSLayoutConstraint(item: passwordLabel, attribute: .Trailing, relatedBy: .Equal, toItem: passwordField, attribute: .Leading, multiplier: 1.0, constant: 8)
- let constraintPasswordLabelAlignBottom = NSLayoutConstraint(item: passwordLabel, attribute: .Bottom, relatedBy: .Equal, toItem: passwordField, attribute: .Bottom, multiplier: 1.0, constant: 0)
- let constraintPasswordFieldHTrailing = NSLayoutConstraint(item: passwordField, attribute: .Trailing, relatedBy: .Equal, toItem: centerView, attribute: .Trailing, multiplier: 1.0, constant: -8)
- centerView.setTranslatesAutoresizingMaskIntoConstraints(false)
- usernameLabel.setTranslatesAutoresizingMaskIntoConstraints(false)
- usernameField.setTranslatesAutoresizingMaskIntoConstraints(false)
- passwordField.setTranslatesAutoresizingMaskIntoConstraints(false)
- passwordLabel.setTranslatesAutoresizingMaskIntoConstraints(false)
- // submitButton.setTranslatesAutoresizingMaskIntoConstraints(false)
- NSLayoutConstraint.activateConstraints([constraintCenterViewHeight, constraintCenterViewWidth, constraintCenterViewCenterX, constraintCenterViewCenterY, constraintUsernameLabelHLeading,
- constraintUsernameLabelHTrailing, constraintUsernameLabelAlignBottom, constraintUsernameFieldVTop, constraintUsernameFieldHTrailing, constraintUsernameFieldVBottom, constraintPasswordLabelHLeading, constraintPasswordLabelHTrailing, constraintPasswordLabelAlignBottom, constraintPasswordFieldHTrailing])
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- }
- self.centerView.addSubview(passwordLabel)
- let constraintCenterViewHeight = NSLayoutConstraint(item: centerView, attribute: .Height,
- relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0,
- constant: 100)
- let constraintCenterViewWidth = NSLayoutConstraint(item: centerView, attribute: .Width,
- relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0,
- constant: 300)
- // changed to -8
- let constraintUsernameLabelHTrailing = NSLayoutConstraint(item: usernameLabel,
- attribute: .Trailing, relatedBy: .Equal, toItem: usernameField,
- attribute: .Leading, multiplier: 1.0, constant: -8)
- // changed to -8
- let constraintUsernameFieldVBottom = NSLayoutConstraint(item: usernameField,
- attribute: .Bottom, relatedBy: .Equal, toItem: passwordField,
- attribute: .Top, multiplier: 1.0, constant: -8)
- // changed to -8
- let constraintPasswordLabelHTrailing = NSLayoutConstraint(item: passwordLabel,
- attribute: .Trailing, relatedBy: .Equal, toItem: passwordField,
- attribute: .Leading, multiplier: 1.0, constant: -8)
- class ViewController: UIViewController {
- var label = UILabel()
- var button = UIButton()
- var stackView = UIStackView()
- override func viewDidLoad() {
- super.viewDidLoad()
- view.backgroundColor = UIColor.cyan
- navigationItem.title = "VCTitle"
- setupUI()
- }
- private func setupUI(){
- label.backgroundColor = UIColor.blue
- label.heightAnchor.constraint(equalToConstant: 50).isActive = true
- label.widthAnchor.constraint(equalToConstant: 80).isActive = true
- button.backgroundColor = UIColor.purple
- button.heightAnchor.constraint(equalToConstant: 30).isActive = true
- button.widthAnchor.constraint(equalToConstant: 10).isActive = true
- setupStackView()
- stackView.addArrangedSubview(label)
- stackView.addArrangedSubview(button)
- stackView.translatesAutoresizingMaskIntoConstraints = false
- view.addSubview(stackView) // AA
- }
- private func setupStackView(){
- stackView.axis = UILayoutConstraintAxis.vertical
- stackView.distribution = UIStackViewDistribution.equalSpacing
- stackView.alignment = UIStackViewAlignment.center
- stackView.spacing = 15
- stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true // B1
- stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true // B2
- }
- }
- class ViewController: UIViewController {
- var label = UILabel()
- var button = UIButton()
- var stackView = UIStackView()
- override func viewDidLoad() {
- super.viewDidLoad()
- view.backgroundColor = UIColor.cyan
- navigationItem.title = "VCTitle"
- setupUI()
- }
- private func setupUI(){
- label.backgroundColor = UIColor.blue
- label.heightAnchor.constraint(equalToConstant: 50).isActive = true
- label.widthAnchor.constraint(equalToConstant: 80).isActive = true
- button.backgroundColor = UIColor.purple
- button.heightAnchor.constraint(equalToConstant: 30).isActive = true
- button.widthAnchor.constraint(equalToConstant: 10).isActive = true
- setupStackView()
- stackView.addArrangedSubview(label)
- stackView.addArrangedSubview(button)
- stackView.translatesAutoresizingMaskIntoConstraints = false
- view.addSubview(stackView) //AA
- // The 2 lines below are now in the right place.
- stackView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true // B1
- stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true // B2
- }
- private func setupStackView(){
- stackView.axis = UILayoutConstraintAxis.vertical
- stackView.distribution = UIStackViewDistribution.equalSpacing
- stackView.alignment = UIStackViewAlignment.center
- stackView.spacing = 15
- }
- }
Add Comment
Please, Sign In to add comment