Helpful extensions for CGFloat and UIView aimed to enhance readability of layout code.
Swift Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Example Project
Sources
LICENSE
README.md
SetNeedsReadable.podspec
compositor.json

README.md

SetNeedsReadable

A collection of helper methods for UIView and calculated variables for CGFloat to help enhance readability.

Installation

Available through CocoaPods. To install, add the following line to your Podfile:

pod 'SetNeedsReadable'

Usage

Usage of the centering helper methods should be restricted to layoutSubviews:, viewDidLayoutSubviews: or animation blocks as appropriate. When used outside of these scenarios, the user is still responsible for marking the appropriate view as dirty with a call to setNeedsLayout. To use, simply import the SetNeedsReadable module where needed.

Centering


foo.centerAlongHorizontalAxis(of: bar)
foo.centerAlongVerticalAxis(of: bar)
foo.centerHorizontally(between: bar, and: baz)
foo.center(inside: bar)
foo.centerVertically(between: bar, and: baz)

Aligning Inside Another View


foo.alignInside(leftEdgeOf: bar)
foo.alignInside(rightEdgeOf: bar)
foo.alignInside(topEdgeOf: bar)
foo.alignInside(bottomEdgeOf: bar)

Aligning Outside Another View


foo.alignOutside(leftEdgeOf: bar)
foo.alignOutside(rightEdgeOf: bar)
foo.alignOutside(topEdgeOf: bar)
foo.alignOutside(bottomEdgeOf: bar)

Animating


The methods can also be invoked inside animation blocks.

UIView.animate(withDuration: duration, delay: delay, options: [], animations: {

  self.foo.centerHorizontally(between: self.bar, and: self.baz)
  self.foo.centerVertically(between: self.bar, and: self.baz)
})

There is an example project in the repository that demonstrates usage.

Author

rehatkathuria
kthr.co/abt

License

SetNeedsReadable is available under the MIT license. See the LICENSE file for more info.