Popularity
1.8
Growing
Activity
8.0
-
60
5
7

Description

FrameLayout is one of the fastest layout library for iOS and tvOS.

Programming language: Swift
License: MIT License
Tags: Layout     Auto Layout     UI     iOS     Swift    
Latest version: v5.2.2

FrameLayoutKit alternatives and similar libraries

Based on the "Auto Layout" category.
Alternatively, view FrameLayoutKit alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of FrameLayoutKit or a related project?

Add another 'Auto Layout' Library

README

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

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

Author

Nam Kennic, [email protected]

License

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


*Note that all licence references and agreements mentioned in the FrameLayoutKit README section above are relevant to that project's source code only.