PureLayout Versions Save

The ultimate API for iOS & OS X Auto Layout — impressively simple, immensely powerful. Objective-C and Swift compatible.

v3.0.0

8 years ago

PureLayout v3.0.0 is a major release, with new APIs, enhancements, and other changes. The v3.0.0 release remains fully backwards compatible with Xcode 5, iOS 6, and OS X 10.7.

Upgrading from PureLayout v2.x? Check out the migration guide.

Breaking Changes from v2.x

  • The following class methods on UIView/NSView have been moved to NSLayoutConstraint. 1583f7b3dbbc519c327aec4c54d36fc77e085017
    • +[autoCreateConstraintsWithoutInstalling:]
    • +[autoSetPriority:forConstraints:]
    • +[autoSetIdentifier:forConstraints:]
  • The methods deprecated in PureLayout v2.0.0 have been removed entirely. 6d204083bc867b208c2ddc5d475b70a65caf9310

Additions

  • New API to batch create, activate, and return all constraints within a block. c2bcb1f976f5b7acf52ef8fce41d0d9115d32ef9
    • +[NSLayoutConstraint autoCreateAndInstallConstraints:]
  • New API to configure an initialized view for use with auto layout (thanks @vivianforzj). e2e75ab9bcdf5b75ddeb8ac85f9f5093b980f46c
    • -[ALView configureForAutoLayout]
  • New API to align a view's axis to another view's axis with a multiplier (thanks @s0mmer). c5a4dc28a33fb2c54ad4d2e54c849e634b80acf9
    • -[ALView autoAlignAxis:toSameAxisOfView:withMultiplier:]
  • New API to pin a view's edges to its superview's edges with zero insets (thanks @pfleiner). c97a5776269d0a649a309c36cbf249ccb22b06c5
    • -[ALView autoPinEdgesToSuperviewEdges]

Enhancements

  • Generics have been added throughout the entire codebase. b030f4f3289271a688d1f67a0fc8b43b675f6d2b bcd91bfa567a331882d712454e96a6f7940a576b 571de949d6926fac748a41a7434212e68a34d024
  • Nullability annotations have been added for all headers. b030f4f3289271a688d1f67a0fc8b43b675f6d2b
  • The methods to distribute views now support distributing an array containing a single view (thanks @pnc). a66c6205b9f43249431b0d1134a346bce9f58f58

Fixes

  • Fixed a warning when compiling using -Wconversion. f58e4b240af1aa1f17cb5c474746a675bb23d896

v2.0.6

9 years ago
  • Fix a compilation issue when targeting OS X 10.7

v2.0.5

9 years ago

v2.0.4

9 years ago
  • Enhance the autoCreateConstraintsWithoutInstalling: API to return an array of created constraints
  • Add a new API to set the size of an array of views
  • Fix a constraint exception when distributing views

v2.0.3

9 years ago
  • Add support for using PureLayout in App Extensions. See this page for more details.

v2.0.2

9 years ago
  • Use a new method to determine the UI layout direction (thanks @vytis)
  • Make activating and deactivating constraints more efficient in some cases

v2.0.1

9 years ago
  • Make the constraint identifier APIs available on Mac OS X, as long as the SDK is at least 10.10 (will work with deployment target of 10.9 or higher)
  • Fix issues with nesting constraint blocks (nested calls to autoSetPriority:, autoSetIdentifier:, etc)
  • Don't set the priority of constraints when installing them unless inside a constraints block

v2.0.0

9 years ago

PureLayout v2.0.0 is a major release, with many new features, APIs, and enhancements. The v2.0.0 release is fully backwards compatible with Xcode 5 and iOS 6 and 7 deployment targets (OS X deployment target remains at 10.7 as well).

Upgrading from PureLayout v1.x? Check out the migration guide.

Looking to take it for a test drive? Check out the brand new demos in the example project! (Download as .zip here)

Changes include:

  • Full support for new features in iOS 8 SDK (first baseline and all layout margin attributes, active & identifier properties on NSLayoutConstraint)
  • New API to constrain views to the iOS 8 layout margin attributes
  • New API to prevent automatic installation of constraints
  • Improved Swift compatibility using a new combined enum type ALAttribute
  • Modified existing APIs to distribute views for naming & type consistency
  • Deprecation of the constraint removal API on UIView
  • Internal enhancements and optimizations

v1.1.0

9 years ago
  • Add a new API to allow distributing views with fixed spacing but without matching all their sizes (relying on each view's intrinsic content size instead)

v1.0.1

9 years ago
  • Add a Foundation import which enables Swift compatibility using a bridging header