Created
July 26, 2021 20:04
-
-
Save gfpacheco/2e3601e50bf6789ddba98932c9dd959e to your computer and use it in GitHub Desktop.
UIView extension that makes it easier to write auto layout constraints
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
import UIKit | |
extension UIView { | |
func inset(into view: UIView, allSides: CGFloat = 0) -> [NSLayoutConstraint] { | |
inset(into: view, horizontal: allSides, vertical: allSides) | |
} | |
func inset(into view: UIView, horizontal: CGFloat? = nil, vertical: CGFloat? = nil) -> [NSLayoutConstraint] { | |
inset(into: view, leading: horizontal, trailing: horizontal, top: vertical, bottom: vertical) | |
} | |
func inset( | |
into view: UIView, | |
leading: CGFloat? = nil, | |
trailing: CGFloat? = nil, | |
top: CGFloat? = nil, | |
bottom: CGFloat? = nil | |
) -> [NSLayoutConstraint] { | |
var constraints = [NSLayoutConstraint]() | |
if let leading = leading { | |
constraints.append(leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: leading)) | |
} | |
if let trailing = trailing { | |
constraints.append(trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -trailing)) | |
} | |
if let top = top { | |
constraints.append(topAnchor.constraint(equalTo: view.topAnchor, constant: top)) | |
} | |
if let bottom = bottom { | |
constraints.append(bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -bottom)) | |
} | |
return constraints | |
} | |
func next(to view: UIView, horizontal: CGFloat? = nil, vertical: CGFloat? = nil) -> [NSLayoutConstraint] { | |
var constraints = [NSLayoutConstraint]() | |
if let horizontal = horizontal { | |
constraints.append(leadingAnchor.constraint(equalTo: view.trailingAnchor, constant: horizontal)) | |
} | |
if let vertical = vertical { | |
constraints.append(topAnchor.constraint(equalTo: view.bottomAnchor, constant: vertical)) | |
} | |
return constraints | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This allows me to write:
Instead of: