Created
January 2, 2017 17:12
-
-
Save arashkashi/69e2d4de495ece1b87a2225df65be592 to your computer and use it in GitHub Desktop.
three uniformly spaced labels
This file contains hidden or 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
// | |
// MyView.swift | |
// TestPopover | |
// | |
// Created by Arash Kashi on 1/2/17. | |
// Copyright © 2017 Arash Kashi. All rights reserved. | |
// | |
import Foundation | |
import UIKit | |
@IBDesignable | |
class MyView: UIView { | |
lazy var leftLabel: UILabel = { | |
let label = UILabel() | |
label.translatesAutoresizingMaskIntoConstraints = false | |
label.textColor = .black | |
label.text = "leftleftleftleft" | |
return label | |
}() | |
lazy var middleLabel: UILabel = { | |
let label = UILabel() | |
label.translatesAutoresizingMaskIntoConstraints = false | |
label.textColor = .black | |
label.text = "middle" | |
return label | |
}() | |
lazy var rightLabel: UILabel = { | |
let label = UILabel() | |
label.translatesAutoresizingMaskIntoConstraints = false | |
label.textColor = .black | |
label.text = "right" | |
return label | |
}() | |
private var leftEdgeGuide: UILayoutGuide = UILayoutGuide() | |
private var leftMiddleGuide: UILayoutGuide = UILayoutGuide() | |
private var rightMiddleGuide: UILayoutGuide = UILayoutGuide() | |
private var rightEdgeGuide: UILayoutGuide = UILayoutGuide() | |
override func layoutSubviews() { | |
super.layoutSubviews() | |
addSubview(leftLabel) | |
addSubview(middleLabel) | |
addSubview(rightLabel) | |
[leftEdgeGuide, | |
leftMiddleGuide, | |
rightMiddleGuide, | |
rightEdgeGuide].forEach { self.addLayoutGuide($0) } | |
leftEdgeGuide.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true | |
leftEdgeGuide.trailingAnchor.constraint(equalTo: leftLabel.leadingAnchor).isActive = true | |
leftLabel.trailingAnchor.constraint(equalTo: leftMiddleGuide.leadingAnchor).isActive = true | |
leftMiddleGuide.trailingAnchor.constraint(equalTo: middleLabel.leadingAnchor).isActive = true | |
middleLabel.trailingAnchor.constraint(equalTo: rightMiddleGuide.leadingAnchor).isActive = true | |
rightMiddleGuide.trailingAnchor.constraint(equalTo: rightLabel.leadingAnchor).isActive = true | |
rightLabel.trailingAnchor.constraint(equalTo: rightEdgeGuide.leadingAnchor).isActive = true | |
rightEdgeGuide.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true | |
leftEdgeGuide.widthAnchor.constraint(equalTo: leftMiddleGuide.widthAnchor).isActive = true | |
leftMiddleGuide.widthAnchor.constraint(equalTo: rightMiddleGuide.widthAnchor).isActive = true | |
rightMiddleGuide.widthAnchor.constraint(equalTo: rightEdgeGuide.widthAnchor).isActive = true | |
leftLabel.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true | |
rightLabel.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true | |
middleLabel.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true | |
self.setNeedsLayout() | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment