Deprecated in favor of PureLayout, which includes OS X support:
The ultimate API for iOS Auto Layout – impressively simple, immensely powerful. Comprised of categories on UIView
, NSArray
, and NSLayoutConstraint
.
UIView+AutoLayout provides a developer-friendly interface for the vast majority of Auto Layout use cases. It is designed for clarity and simplicity, taking inspiration from the Auto Layout UI options available in Interface Builder but delivering far more flexibility and capability. The API is also highly efficient, as it adds only a thin layer of third party code and is engineered for maximum performance (for example, by automatically adding constraints to the nearest ancestor view).
This is just a handy overview of the core API methods. Check out the header file for the full API and documentation. A couple notes:
auto...
for easy autocompletion!relation:
parameter to make the constraint an inequality.UIView
+ autoRemoveConstraint(s):
- autoRemoveConstraintsAffectingView(AndSubviews)
+ autoSetPriority:forConstraints:
- autoSetContent(CompressionResistance|Hugging)PriorityForAxis:
- autoCenterInSuperview:
- autoAlignAxisToSuperviewAxis:
- autoPinEdgeToSuperviewEdge:withInset:
- autoPinEdgesToSuperviewEdges:withInsets:(excludingEdge:)
- autoPinEdge:toEdge:ofView:(withOffset:)
- autoAlignAxis:toSameAxisOfView:(withOffset:)
- autoMatchDimension:toDimension:ofView:(withOffset:|withMultiplier:)
- autoSetDimension(s)ToSize:
- autoConstrainAttribute:toAttribute:ofView:(withOffset:|withMultiplier:)
- autoPinTo(Top|Bottom)LayoutGuideOfViewController:withInset:
NSArray
- autoAlignViewsToEdge:
- autoAlignViewsToAxis:
- autoMatchViewsDimension:
- autoSetViewsDimension:toSize:
- autoDistributeViewsAlongAxis:withFixedSpacing:(insetSpacing:)alignment:
- autoDistributeViewsAlongAxis:withFixedSize:(insetSpacing:)alignment:
NSLayoutConstraint
- autoInstall
- autoRemove
Note: you must be developing for iOS 6.0 or later to use Auto Layout.
Using CocoaPods
Add the pod UIView+AutoLayout
to your Podfile.
pod 'UIView+AutoLayout'
Run pod install
from Terminal, then open your app’s .xcworkspace
file to launch Xcode.
#import "UIView+AutoLayout.h"
wherever you want to use the API. (Hint: adding the import to your precompiled header (.pch) file once will remove the need to import the .h file everywhere!)
That’s it - now go write some beautifully simple Auto Layout code!
Manually from GitHub
UIView+AutoLayout.h
and UIView+AutoLayout.m
files in the Source directory.#import "UIView+AutoLayout.h"
wherever you want to use the API. (Hint: adding the import to your precompiled header (.pch) file once will remove the need to import the .h file everywhere!)That’s it - now go write some beautifully simple Auto Layout code!
Releases
Releases are tagged in the git commit history using semantic versioning. Check out the releases and release notes for each version.
Example Project
Check out the example project included in the repository. It contains a few demos of the API in use for various scenarios. While running the app, tap on the screen to cycle through the demos. You can rotate the device to see the constraints in action (as well as toggle the taller in-call status bar in the iOS Simulator).
Tips and Tricks
Check out some Tips and Tricks to keep in mind when using the API.
NSLayoutConstraint
SDK API directly for some extremely uncommon use casesAn overview of the Auto Layout options available, ordered from the lowest- to highest-level of abstraction.
Bring 'em on! 😃
It’s always a good idea to reach out before taking on any significant amount of changes or additions to the project. This allows everyone to get onboard with upcoming changes, ensures that changes align with the project’s design philosophy, and avoids duplicated work.
I’m especially interested in hearing about any common use cases that this API does not currently address. Feel free to add feature requests (and view current work in progress) on the Feature Requests page of the wiki for this project.
Designed & maintained by Tyler Fox (@smileyborg). Distributed with the MIT license.