Swiftpack.co - Package - kennic/FrameLayoutKit
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.

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:

pod "FrameLayoutKit"

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, namkennic@me.com

License

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

Github

link
Stars: 52

Releases

5.2.4 - 2021-01-07T09:58:03

5.2.3 - 2020-12-31T08:58:57

- 2020-12-04T09:00:09

Bug fixes

5.2.1 - 2020-11-24T10:30:31

Fixed StackFrameLayout returns wrong height in overlapped mode

5.2.0 - 2020-11-23T09:20:13

New FlowFrameLayout New translationOffset property New justified mode Bug fixes

New ScrollStackView - 2020-06-24T07:36:57

- 2020-06-02T08:09:12