/wwlayout

Swifty DSL for programmatic Auto Layout in iOS

Primary LanguageSwiftApache License 2.0Apache-2.0

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

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.