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:
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
}
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, namkennic@me.com
License
FrameLayoutKit is available under the MIT license. See the LICENSE file for more info.
Github
link |
Stars: 52 |
You may find interesting
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