Created
September 25, 2017 14:29
-
-
Save sanekgusev/c5d8ae6cd1b6f36c046abe7cf70b1451 to your computer and use it in GitHub Desktop.
NSLayoutAnchor+MultiplierConstraints
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
extension NSLayoutXAxisAnchor { | |
func constraint(equalTo anchor: NSLayoutXAxisAnchor, | |
multiplier m: CGFloat, | |
constant c: CGFloat = 0.0) -> NSLayoutConstraint { | |
let constraint = self.constraint(equalTo: anchor, constant: c) | |
return constraint.constraint(multiplier: m) | |
} | |
func constraint(greaterThanOrEqualTo anchor: NSLayoutXAxisAnchor, | |
multiplier m: CGFloat, | |
constant c: CGFloat = 0.0) -> NSLayoutConstraint { | |
let constraint = self.constraint(greaterThanOrEqualTo: anchor, constant: c) | |
return constraint.constraint(multiplier: m) | |
} | |
func constraint(lessThanOrEqualTo anchor: NSLayoutXAxisAnchor, | |
multiplier m: CGFloat, | |
constant c: CGFloat = 0.0) -> NSLayoutConstraint { | |
let constraint = self.constraint(lessThanOrEqualTo: anchor, constant: c) | |
return constraint.constraint(multiplier: m) | |
} | |
} | |
extension NSLayoutYAxisAnchor { | |
func constraint(equalTo anchor: NSLayoutYAxisAnchor, | |
multiplier m: CGFloat, | |
constant c: CGFloat = 0.0) -> NSLayoutConstraint { | |
let constraint = self.constraint(equalTo: anchor, constant: c) | |
return constraint.constraint(multiplier: m) | |
} | |
func constraint(greaterThanOrEqualTo anchor: NSLayoutYAxisAnchor, | |
multiplier m: CGFloat, | |
constant c: CGFloat = 0.0) -> NSLayoutConstraint { | |
let constraint = self.constraint(greaterThanOrEqualTo: anchor, constant: c) | |
return constraint.constraint(multiplier: m) | |
} | |
func constraint(lessThanOrEqualTo anchor: NSLayoutYAxisAnchor, | |
multiplier m: CGFloat, | |
constant c: CGFloat = 0.0) -> NSLayoutConstraint { | |
let constraint = self.constraint(lessThanOrEqualTo: anchor, constant: c) | |
return constraint.constraint(multiplier: m) | |
} | |
} | |
private extension NSLayoutConstraint { | |
func constraint(multiplier: CGFloat) -> NSLayoutConstraint { | |
return NSLayoutConstraint(item: firstItem!, | |
attribute: firstAttribute, | |
relatedBy: relation, | |
toItem: secondItem, | |
attribute: secondAttribute, | |
multiplier: multiplier, | |
constant: constant) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment