wwlayout icon indicating copy to clipboard operation
wwlayout copied to clipboard

Swifty DSL for programmatic Auto Layout in iOS

WWLayout

WWLayout

Easy to write auto layout constraints, with minimal extensions to standard namespaces.

Feature Highlights

  • Easy to use, readable API
  • Backwards-compatible (i.e. pre iOS 11) Safe Area constraints
  • Tag constraints to easily switch between different layouts (coming soon)
  • Automatic switching of size-class based constraints (coming soon)

Introduction

Constraints are added to a view using the view's layout property, like so:

    myView.layout.width(400)

Multiple constraints are easily added by chaining calls:

    myView.layout.width(400).height(200)

A more complicated example:

    let container = UIView()
    let child = UIView()

    container.layout.fill(.safeArea)

    child.layout
      .fill(container, axis: .x, inset: 20)
      .center(in: container, axis: .y, priority: .high)
      .top(.lessOrEqual, to: container, offset: 100)
      .height(toWidth: 0.5)

Dcumentation

Documentation can be found here

Installation

Swift Package Manager

The WWLayout Package URL is:

https://github.com/ww-tech/wwlayout.git

Add the package dependency to your Xcode project using the File -> Swift Packages -> Add Package Dependency... menu item.

Cocoapods

Simply add WWLayout to your Podfile:

  pod 'WWLayout'

Contributing

Authors

License

WWLayout is © copyright by WW International.

WWLayout is licensed under the Apache-2.0 Open Source license.