Merge pull request #211 from rohan-panchal/dev

Added identifier field to ConstraintDescription
This commit is contained in:
Robert Payne 2016-03-22 13:02:31 +13:00
commit 1ca48df9b1
3 changed files with 28 additions and 2 deletions

View File

@ -193,15 +193,18 @@ internal class ConcreteConstraint: Constraint {
}
}
private let label: String?
private var installInfo: ConcreteConstraintInstallInfo? = nil
internal init(fromItem: ConstraintItem, toItem: ConstraintItem, relation: ConstraintRelation, constant: Any, multiplier: Float, priority: Float) {
internal init(fromItem: ConstraintItem, toItem: ConstraintItem, relation: ConstraintRelation, constant: Any, multiplier: Float, priority: Float, label: String? = nil) {
self.fromItem = fromItem
self.toItem = toItem
self.relation = relation
self.constant = constant
self.multiplier = multiplier
self.priority = priority
self.label = label
}
internal func installOnView(updateExisting updateExisting: Bool = false, file: String? = nil, line: UInt? = nil) -> [LayoutConstraint] {
@ -269,6 +272,7 @@ internal class ConcreteConstraint: Constraint {
attribute: layoutToAttribute,
multiplier: CGFloat(self.multiplier),
constant: layoutConstant)
layoutConstraint.identifier = self.label
// set priority
layoutConstraint.priority = self.priority

View File

@ -34,6 +34,8 @@ public protocol ConstraintDescriptionFinalizable: class {
var constraint: Constraint { get }
func labeled(label: String) -> ConstraintDescriptionFinalizable
}
/**
@ -191,6 +193,7 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain
internal var centerX: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.CenterX) }
internal var centerY: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.CenterY) }
internal var baseline: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Baseline) }
internal var label: String?
@available(iOS 8.0, *)
internal var firstBaseline: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.FirstBaseline) }
@ -487,11 +490,17 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain
relation: self.relation!,
constant: self.constant,
multiplier: self.multiplier,
priority: self.priority)
priority: self.priority,
label: self.label)
}
return self.concreteConstraint!
}
func labeled(label: String) -> ConstraintDescriptionFinalizable {
self.label = label
return self
}
// MARK: Private
private let fromItem: ConstraintItem

View File

@ -249,4 +249,17 @@ class SnapKitTests: XCTestCase {
XCTAssertEqual(constraints[1].constant, 50, "Should be 50")
}
func testConstraintIdentifier() {
let identifier = "Test-Identifier"
let view = View()
self.container.addSubview(view)
view.snp_makeConstraints { (make) -> Void in
make.top.equalTo(self.container.snp_top).labeled(identifier)
}
let constraints = container.snp_constraints as! [NSLayoutConstraint]
XCTAssertEqual(constraints[0].identifier, identifier, "Identifier should be 'Test'")
}
}