-
Notifications
You must be signed in to change notification settings - Fork 27
/
Copy pathZStackView.swift
42 lines (32 loc) · 1.07 KB
/
ZStackView.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import UIKit
final class ZStackView: UIView {
init(views: [UIView]) {
super.init(frame: .zero)
views.forEach { view in
addSubview(view)
view.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
view.leftAnchor.constraint(greaterThanOrEqualTo: self.leftAnchor),
view.topAnchor.constraint(greaterThanOrEqualTo: self.topAnchor),
view.rightAnchor.constraint(lessThanOrEqualTo: self.rightAnchor),
view.bottomAnchor.constraint(lessThanOrEqualTo: self.bottomAnchor),
{
let c = view.centerXAnchor.constraint(equalTo: self.centerXAnchor)
c.priority = .defaultLow
return c
}(),
{
let c = view.centerYAnchor.constraint(equalTo: self.centerYAnchor)
c.priority = .defaultLow
return c
}(),
])
}
setContentHuggingPriority(.defaultHigh, for: .horizontal)
setContentHuggingPriority(.defaultHigh, for: .vertical)
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError()
}
}