Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extension UIView {
- @discardableResult
- func constrain(attribute: NSLayoutAttribute, constant: CGFloat = 0) -> NSLayoutConstraint {
- return constrain {[
- NSLayoutConstraint(item: $0, attribute: attribute, relatedBy: .equal, toItem: $0.superview!, attribute: attribute, multiplier: 1, constant: constant)
- ]}.first!
- }
- @discardableResult
- func constrainToEdges(_ inset: UIEdgeInsets = UIEdgeInsets()) -> [NSLayoutConstraint] {
- if #available(iOS 9.0, *) {
- return constrain {[
- $0.topAnchor.constraint(equalTo: $0.superview!.topAnchor, constant: inset.top),
- $0.leadingAnchor.constraint(equalTo: $0.superview!.leadingAnchor, constant: inset.left),
- $0.bottomAnchor.constraint(equalTo: $0.superview!.bottomAnchor, constant: inset.bottom),
- $0.trailingAnchor.constraint(equalTo: $0.superview!.trailingAnchor, constant: inset.right)
- ]}
- } else {
- return constrain {
- NSLayoutConstraint.constraints(withVisualFormat: "H:|-\(inset.left)-\($0)-\(inset.right)-|", options: [], metrics: nil, views: ["view": $0]) +
- NSLayoutConstraint.constraints(withVisualFormat: "V:|-\(inset.top)-\($0)-\(inset.bottom)-|", options: [], metrics: nil, views: ["view": $0])
- }
- }
- }
- @discardableResult
- func constrainToCenter() -> [NSLayoutConstraint] {
- if #available(iOS 9.0, *) {
- return constrain {[
- $0.centerXAnchor.constraint(equalTo: $0.superview!.centerXAnchor),
- $0.centerYAnchor.constraint(equalTo: $0.superview!.centerYAnchor)
- ]}
- } else {
- return constrain {[
- $0.constrain(attribute: .centerX),
- $0.constrain(attribute: .centerY)
- ]}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement