Skip to content

Instantly share code, notes, and snippets.

@ZhiyuanSun
Last active March 19, 2021 20:28
Show Gist options
  • Save ZhiyuanSun/bf800089accfdad3e7870a8d173e0ffa to your computer and use it in GitHub Desktop.
Save ZhiyuanSun/bf800089accfdad3e7870a8d173e0ffa to your computer and use it in GitHub Desktop.
//
// 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