A simpler way to work with NSLayoutAnchor
MIT License
SugarAnchor is syntactic sugar on NSLayoutAnchor
to help us write more compact, readable and easy layout code. It wraps up all of NSLayoutXAxisAnchor
, NSLayoutYAxisAnchor
and NSLayoutDimension
functionalities under some easy to use operators to reduce verbosity.
[1] Same NSLayoutAnchor/NSLayoutConstraints, just syntactic sugar on it
To run the example project, clone the repo, and run pod install
from the Example directory first.
SugarAnchor is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "SugarAnchor"
Let's looks at a simple NSLayoutAnchor code:
(redView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20)).isActive = true
With SugarAnchor, it become:
redView.leadingAnchor =*= view.leadingAnchor + 20
Think *
as Active constraint and ~
as Inactive constraint. Then with =*=
, you'll create an active constraint directly or with =~=
you may create an inactive constraint which you can activate later.
view1.leftAnchor =*= view2.leftAnchor + 10
// Or
let leftConstraint = (view1.leftAnchor =~= view2.leftAnchor + 10)
leftConstraint.isActive = true
In each case, you'll get the constraint to keep or just ignore. For example, for an active one:
self.heightConstraint = (v1.heightAnchor =*= 200)
// Later somewhere
self.heightConstraint.constant = 100
Operator | Description | Example |
---|---|---|
=*= | Equal(Active) | ❖ v1.leadingAnchor =*= v2.leadingAnchor ❖ v1.leftAnchor =*= v2.leftAnchor + 20 ❖ v1.widthAnchor =*= v2.widthAnchor / 2 + 10 ❖ v1.heightAnchor =*= 200
|
<*= | LessThanOrEqual(Active) | ❖ v1.bottomAnchor <*= container.bottomAnchor - 8
|
>*= | GreaterThanOrEqual(Active) | ❖ v2.leadingAnchor >*= v1.trailingAnchor + 5
|
=~= | Equal(Inactive) | ❖ (v1.widthAnchor =~= 200).isActive = true
|
<~= | LessThanOrEqual(Inactive) | ❖ (v1.bottomAnchor <~= container.bottomAnchor - 8).isActive = true
|
>~= | GreaterThanOrEqual(Inactive) | ❖ (v2.leadingAnchor >~= v1.trailingAnchor + 5).isActive = true
|
ashikahmad, [email protected]
SugarAnchor is available under the MIT license. See the LICENSE file for more info.