mirror of https://github.com/SnapKit/SnapKit
Make ConstraintMakerRelatable targets work with UILayoutGuide (#372)
* Make ConstraintMakerRelatable targets work with UILayoutGuide * Fix unit tests on macOS * Fix the OS API version availability directives
This commit is contained in:
parent
32cd509939
commit
63bf462e81
|
@ -57,6 +57,9 @@ public class ConstraintMakerRelatable {
|
||||||
} else if let other = other as? ConstraintConstantTarget {
|
} else if let other = other as? ConstraintConstantTarget {
|
||||||
related = ConstraintItem(target: nil, attributes: ConstraintAttributes.none)
|
related = ConstraintItem(target: nil, attributes: ConstraintAttributes.none)
|
||||||
constant = other
|
constant = other
|
||||||
|
} else if #available(iOS 9.0, OSX 10.11, *), let other = other as? ConstraintLayoutGuide {
|
||||||
|
related = ConstraintItem(target: other, attributes: ConstraintAttributes.none)
|
||||||
|
constant = 0.0
|
||||||
} else {
|
} else {
|
||||||
fatalError("Invalid constraint. (\(file), \(line))")
|
fatalError("Invalid constraint. (\(file), \(line))")
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,3 +60,7 @@ extension ConstraintItem: ConstraintRelatableTarget {
|
||||||
|
|
||||||
extension ConstraintView: ConstraintRelatableTarget {
|
extension ConstraintView: ConstraintRelatableTarget {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@available(iOS 9.0, OSX 10.11, *)
|
||||||
|
extension ConstraintLayoutGuide: ConstraintRelatableTarget {
|
||||||
|
}
|
||||||
|
|
|
@ -60,16 +60,16 @@ class SnapKitTests: XCTestCase {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if os(iOS) || os(tvOS)
|
|
||||||
func testGuideMakeConstraints() {
|
func testGuideMakeConstraints() {
|
||||||
guard #available(iOS 9.0, *) else { return }
|
guard #available(iOS 9.0, OSX 10.11, *) else { return }
|
||||||
let v1 = View()
|
let v1 = View()
|
||||||
let g1 = UILayoutGuide()
|
|
||||||
|
let g1 = ConstraintLayoutGuide()
|
||||||
self.container.addSubview(v1)
|
self.container.addSubview(v1)
|
||||||
self.container.addLayoutGuide(g1)
|
self.container.addLayoutGuide(g1)
|
||||||
|
|
||||||
v1.snp.makeConstraints { (make) -> Void in
|
v1.snp.makeConstraints { (make) -> Void in
|
||||||
make.top.equalTo(g1.snp.top).offset(50)
|
make.top.equalTo(g1).offset(50)
|
||||||
make.left.equalTo(g1.snp.top).offset(50)
|
make.left.equalTo(g1.snp.top).offset(50)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,6 @@ class SnapKitTests: XCTestCase {
|
||||||
|
|
||||||
XCTAssertEqual(self.container.snp_constraints.count, 6, "Should have 6 constraints installed")
|
XCTAssertEqual(self.container.snp_constraints.count, 6, "Should have 6 constraints installed")
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
func testMakeImpliedSuperviewConstraints() {
|
func testMakeImpliedSuperviewConstraints() {
|
||||||
let v1 = View()
|
let v1 = View()
|
||||||
|
@ -130,7 +129,6 @@ class SnapKitTests: XCTestCase {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
func testRemakeConstraints() {
|
func testRemakeConstraints() {
|
||||||
let v1 = View()
|
let v1 = View()
|
||||||
let v2 = View()
|
let v2 = View()
|
||||||
|
|
Loading…
Reference in New Issue