Merge pull request #121 from TouchInstinct/feature/pinView11
Safe area support added
This commit is contained in:
commit
ee15a4f1a6
|
|
@ -41,10 +41,46 @@ public extension UIView {
|
|||
return
|
||||
}
|
||||
|
||||
centerXAnchor.constraint(equalTo: parent.centerXAnchor).isActive = true
|
||||
centerYAnchor.constraint(equalTo: parent.centerYAnchor).isActive = true
|
||||
heightAnchor.constraint(equalToConstant: size.height).isActive = true
|
||||
widthAnchor.constraint(equalToConstant: size.width).isActive = true
|
||||
let constraints = [
|
||||
centerXAnchor.constraint(equalTo: parent.centerXAnchor),
|
||||
centerYAnchor.constraint(equalTo: parent.centerYAnchor),
|
||||
heightAnchor.constraint(equalToConstant: size.height),
|
||||
widthAnchor.constraint(equalToConstant: size.width)
|
||||
]
|
||||
|
||||
NSLayoutConstraint.activate(constraints)
|
||||
}
|
||||
|
||||
/**
|
||||
Place and fix view to parent view's center with insets
|
||||
|
||||
- parameter insets: desired view insets, by default is zero
|
||||
*/
|
||||
func setToCenter(wtihInsets insets: UIEdgeInsets = .zero) {
|
||||
guard let superview = superview else {
|
||||
return
|
||||
}
|
||||
|
||||
translatesAutoresizingMaskIntoConstraints = false
|
||||
|
||||
let constraints: [NSLayoutConstraint]
|
||||
if #available(iOS 11, *) {
|
||||
constraints = [
|
||||
topAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.topAnchor, constant: insets.top),
|
||||
leadingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.leadingAnchor, constant: insets.left),
|
||||
bottomAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.bottomAnchor, constant: -insets.bottom),
|
||||
trailingAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.trailingAnchor, constant: -insets.right)
|
||||
]
|
||||
} else {
|
||||
constraints = [
|
||||
topAnchor.constraint(equalTo: superview.topAnchor, constant: insets.top),
|
||||
leadingAnchor.constraint(equalTo: superview.leadingAnchor, constant: insets.left),
|
||||
bottomAnchor.constraint(equalTo: superview.bottomAnchor, constant: -insets.bottom),
|
||||
trailingAnchor.constraint(equalTo: superview.trailingAnchor, constant: -insets.right)
|
||||
]
|
||||
}
|
||||
|
||||
NSLayoutConstraint.activate(constraints)
|
||||
}
|
||||
|
||||
private func scaleToFill() {
|
||||
|
|
@ -52,10 +88,24 @@ public extension UIView {
|
|||
return
|
||||
}
|
||||
|
||||
topAnchor.constraint(equalTo: superview.topAnchor).isActive = true
|
||||
bottomAnchor.constraint(equalTo: superview.bottomAnchor).isActive = true
|
||||
leftAnchor.constraint(equalTo: superview.leftAnchor).isActive = true
|
||||
rightAnchor.constraint(equalTo: superview.rightAnchor).isActive = true
|
||||
let constraints: [NSLayoutConstraint]
|
||||
if #available(iOS 11, *) {
|
||||
constraints = [
|
||||
topAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.topAnchor),
|
||||
bottomAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.bottomAnchor),
|
||||
leftAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.leftAnchor),
|
||||
rightAnchor.constraint(equalTo: superview.safeAreaLayoutGuide.rightAnchor)
|
||||
]
|
||||
} else {
|
||||
constraints = [
|
||||
topAnchor.constraint(equalTo: superview.topAnchor),
|
||||
bottomAnchor.constraint(equalTo: superview.bottomAnchor),
|
||||
leftAnchor.constraint(equalTo: superview.leftAnchor),
|
||||
rightAnchor.constraint(equalTo: superview.rightAnchor)
|
||||
]
|
||||
}
|
||||
|
||||
NSLayoutConstraint.activate(constraints)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue