Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. extension UIView {
  2. @discardableResult
  3. func constrain(attribute: NSLayoutAttribute, constant: CGFloat = 0) -> NSLayoutConstraint {
  4. return constrain {[
  5. NSLayoutConstraint(item: $0, attribute: attribute, relatedBy: .equal, toItem: $0.superview!, attribute: attribute, multiplier: 1, constant: constant)
  6. ]}.first!
  7. }
  8.  
  9. @discardableResult
  10. func constrainToEdges(_ inset: UIEdgeInsets = UIEdgeInsets()) -> [NSLayoutConstraint] {
  11. if #available(iOS 9.0, *) {
  12. return constrain {[
  13. $0.topAnchor.constraint(equalTo: $0.superview!.topAnchor, constant: inset.top),
  14. $0.leadingAnchor.constraint(equalTo: $0.superview!.leadingAnchor, constant: inset.left),
  15. $0.bottomAnchor.constraint(equalTo: $0.superview!.bottomAnchor, constant: inset.bottom),
  16. $0.trailingAnchor.constraint(equalTo: $0.superview!.trailingAnchor, constant: inset.right)
  17. ]}
  18. } else {
  19. return constrain {
  20. NSLayoutConstraint.constraints(withVisualFormat: "H:|-\(inset.left)-\($0)-\(inset.right)-|", options: [], metrics: nil, views: ["view": $0]) +
  21. NSLayoutConstraint.constraints(withVisualFormat: "V:|-\(inset.top)-\($0)-\(inset.bottom)-|", options: [], metrics: nil, views: ["view": $0])
  22. }
  23. }
  24. }
  25.  
  26. @discardableResult
  27. func constrainToCenter() -> [NSLayoutConstraint] {
  28. if #available(iOS 9.0, *) {
  29. return constrain {[
  30. $0.centerXAnchor.constraint(equalTo: $0.superview!.centerXAnchor),
  31. $0.centerYAnchor.constraint(equalTo: $0.superview!.centerYAnchor)
  32. ]}
  33. } else {
  34. return constrain {[
  35. $0.constrain(attribute: .centerX),
  36. $0.constrain(attribute: .centerY)
  37. ]}
  38. }
  39. }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement