Last active
March 19, 2021 20:28
-
-
Save ZhiyuanSun/bf800089accfdad3e7870a8d173e0ffa to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ViewController.swift | |
// AutolayoutTest | |
// | |
// Created by Zhiyuan Sun on 3/19/21. | |
// | |
import UIKit | |
class MyView: UIView { | |
private lazy var label: UILabel = { | |
let label = UILabel() | |
label.translatesAutoresizingMaskIntoConstraints = false | |
label.text = "This is a label that might have dynamic length,This is a label that might have dynamic lengthThis is a label that might have dynamic length" | |
label.numberOfLines = 0 | |
label.textAlignment = .center | |
return label | |
}() | |
init() { | |
super.init(frame: .zero) | |
backgroundColor = .gray | |
translatesAutoresizingMaskIntoConstraints = false | |
addSubview(label) | |
NSLayoutConstraint.activate([ | |
label.topAnchor.constraint(equalTo: topAnchor, constant: 20), | |
label.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -20), | |
label.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 80), | |
label.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -80), | |
]) | |
} | |
required init?(coder: NSCoder) { | |
fatalError("init(coder:) has not been implemented") | |
} | |
} | |
class ViewController: UIViewController { | |
private lazy var footer = MyView() | |
private lazy var header = MyView() | |
private lazy var middle = MyView() | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
view.backgroundColor = .red | |
view.addSubview(footer) | |
view.addSubview(header) | |
NSLayoutConstraint.activate([ | |
footer.bottomAnchor.constraint(equalTo: view.bottomAnchor), | |
footer.leadingAnchor.constraint(equalTo: view.leadingAnchor), | |
footer.trailingAnchor.constraint(equalTo: view.trailingAnchor), | |
header.topAnchor.constraint(equalTo: view.topAnchor), | |
header.leadingAnchor.constraint(equalTo: view.leadingAnchor), | |
header.trailingAnchor.constraint(equalTo: view.trailingAnchor), | |
]) | |
// view.addSubview(middle) | |
// NSLayoutConstraint.activate([ | |
// middle.topAnchor.constraint(equalTo: header.bottomAnchor, constant: 20), | |
// middle.bottomAnchor.constraint(equalTo: footer.topAnchor, constant: -20), | |
// middle.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20), | |
// middle.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20), | |
// ]) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment