FrameLayoutKit
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:
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:
- Click
File
Swift Packages
Add Package Dependency...
- 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
}
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.
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.