Skip to content

Instantly share code, notes, and snippets.

@GenoZhou
Last active November 24, 2017 10:41
Show Gist options
  • Save GenoZhou/c9f7b0d920bc6a26e885cb6e137b33ec to your computer and use it in GitHub Desktop.
Save GenoZhou/c9f7b0d920bc6a26e885cb6e137b33ec to your computer and use it in GitHub Desktop.
Swift 4 UIView Autolayout extensions.
extension UIView {
@discardableResult
public func constrainEdges(to view: UIView) -> [NSLayoutConstraint] {
let constraints = [
leadingAnchor.constraint(equalTo: view.leadingAnchor),
topAnchor.constraint(equalTo: view.topAnchor),
trailingAnchor.constraint(equalTo: view.trailingAnchor),
bottomAnchor.constraint(equalTo: view.bottomAnchor)
]
NSLayoutConstraint.activate(constraints)
return constraints
}
@discardableResult
public func constrainEdges(toMarginOf view: UIView) -> [NSLayoutConstraint] {
let margins = view.layoutMarginsGuide
let constraints = [
leadingAnchor.constraint(equalTo: margins.leadingAnchor),
topAnchor.constraint(equalTo: margins.topAnchor),
trailingAnchor.constraint(equalTo: margins.trailingAnchor),
bottomAnchor.constraint(equalTo: margins.bottomAnchor)
]
NSLayoutConstraint.activate(constraints)
return constraints
}
@discardableResult
public func center(in view: UIView) -> [NSLayoutConstraint] {
let constraints = [
centerXAnchor.constraint(equalTo: view.centerXAnchor),
centerYAnchor.constraint(equalTo: view.centerYAnchor)
]
NSLayoutConstraint.activate(constraints)
return constraints
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment