import UIKit
extension UIView {
func constrain(to view: UIView, withInsets insets: UIEdgeInsets = .zero) {
translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
topAnchor.constraint(equalTo: view.topAnchor, constant: insets.top),
bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -insets.bottom),
leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: insets.left),
trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -insets.right)
])
}
func constrain(size: CGSize) {
translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
widthAnchor.constraint(equalToConstant: size.width),
heightAnchor.constraint(equalToConstant: size.height)
])
}
func center(in view: UIView, xOffset: CGFloat = 0, yOffset: CGFloat = 0) {
translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
centerXAnchor.constraint(equalTo: view.centerXAnchor, constant: xOffset),
centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: yOffset)
])
}
}
// Example usage:
let view = UIView()
view.backgroundColor = .red
view.translatesAutoresizingMaskIntoConstraints = false
view.constrain(to: superview, withInsets: UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16))
view.constrain(size: CGSize(width: 100, height: 100))
view.center(in: superview, xOffset: 20, yOffset: -10)