FrameLayoutKit 6.4.1

FrameLayoutKit 6.4.1

Maintained by Nam Kennic.



FrameLayoutKit

Platform Language Version SwiftPM Compatible License

image

FrameLayout is a super fast and easy to use layout library for iOS and tvOS.

For Objective-C version: NKFrameLayoutKit (Deprecated, not recommended)

Why?

Say NO to autolayout constraint nightmare:

NO YES

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Installation

FrameLayoutKit is available through Swift Package Manager (Recommended) and CocoaPods:

Regardless, make sure to import the project wherever you may use it:

import FrameLayoutKit

Cocoapods:

FrameLayoutKit can be installed as a CocoaPod. To install, include this in your Podfile.

pod "FrameLayoutKit"

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into Xcode and the Swift compiler. This is the recommended installation method. Updates to FrameLayoutKit will always be available immediately to projects with SPM. SPM is also integrated directly with Xcode.

If you are using Xcode 11 or later:

  1. Click File
  2. Swift Packages
  3. Add Package Dependency...
  4. Specify the git URL for FrameLayoutKit.
https://github.com/kennic/FrameLayoutKit.git

Example

This is how FrameLayoutKit layout the card view below:

let frameLayout = HStackLayout {
  $0.add(VStackLayout {
    $0.add(earthImageView).alignment = (.top, .center)
    $0.addSpace().flexible()
    $0.add(rocketImageView).alignment = (.center, .center)
  })
		
  $0.add(VStackLayout {
    $0.add([nameLabel, dateLabel])
    $0.addSpace(10)
    $0.add(messageLabel)
    $0.spacing = 5.0
  })

  $0.spacing = 15.0
  $0.padding(top: 15, left: 15, bottom: 15, right: 15)
  $0.debug = true
}

Hello World

Or you can use operand syntax for shorter/cleaner code:

let frameLayout = StackFrameLayout(axis: .horizontal)
frameLayout + VStackLayout {
	($0 + earthImageView).alignment = (.top, .center)
	($0 + 0).flexible() // add a flexible space
	($0 + rocketImageView).alignment = (.center, .center)
}
frameLayout + VStackLayout {
	$0 + [nameLabel, dateLabel] // add an array of views
	$0 + 10 // add space with 10 px fixed
	$0 + messageLabel // add a single view
	$0.spacing = 5.0 // spacing between views
}

frameLayout.spacing = 15.0
frameLayout.padding(top: 15, left: 15, bottom: 15, right: 15)
frameLayout.debug = true // show debug frame
}

Benchmark

FrameLayoutKit is one of the fastest layout libraries. Benchmark Results

See: Layout libraries benchmark's project

Todo

  • Swift Package Manager
  • CocoaPods support
  • Objective-C version (Deprecated - Not recommended)
  • Swift version
  • Examples
  • Documents

Author

Nam Kennic, [email protected]

License

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