36 lines
1.2 KiB
Swift
36 lines
1.2 KiB
Swift
//
|
|
// UIView+Layout.swift
|
|
// BilibiliLive
|
|
//
|
|
// Created by Etan Chen on 2021/4/4.
|
|
//
|
|
|
|
import AppKit
|
|
|
|
extension NSView {
|
|
@discardableResult
|
|
func makeConstraints(_ block: (NSView) -> [NSLayoutConstraint]) -> Self {
|
|
translatesAutoresizingMaskIntoConstraints = false
|
|
NSLayoutConstraint.activate(block(self))
|
|
return self
|
|
}
|
|
|
|
@discardableResult
|
|
func makeConstraintsToBindToSuperview(_ inset: NSEdgeInsets = .init(top: 0, left: 0, bottom: 0, right: 0)) -> Self {
|
|
return makeConstraints { [
|
|
$0.leftAnchor.constraint(equalTo: $0.superview!.leftAnchor, constant: inset.left),
|
|
$0.rightAnchor.constraint(equalTo: $0.superview!.rightAnchor, constant: -inset.right),
|
|
$0.topAnchor.constraint(equalTo: $0.superview!.topAnchor, constant: inset.top),
|
|
$0.bottomAnchor.constraint(equalTo: $0.superview!.bottomAnchor, constant: -inset.bottom)
|
|
] }
|
|
}
|
|
|
|
@discardableResult
|
|
func makeConstraintsBindToCenterOfSuperview() -> Self {
|
|
return makeConstraints { [
|
|
$0.centerXAnchor.constraint(equalTo: $0.superview!.centerXAnchor),
|
|
$0.centerYAnchor.constraint(equalTo: $0.superview!.centerYAnchor)
|
|
] }
|
|
}
|
|
}
|