Lightweight sizing dsl for SwiftUI
Sometimes it's pretty annoying to type something like .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) , so I decided to extract common cases to this tiny framework.
import SUILayout
import SwiftUI
struct MyView: View {
var body: some View {
Text("Awesome SwiftUI")
.foregroundColor(.white)
.pin.toLeft()
.pin.size(to: .square(240))
.background(Color.black)
}
}Pins:
toScreen(multipliedBy multipliers: CGPoint)toScreen(insetBy inset: CGPoint = .zero)sizeToScreen(multipliedBy multipliers: CGPoint)sizeToScreen(insetBy insets: CGPoint = .zero)widthToScreen(multipliedBy multiplier: CGFloat)widthToScreen(insetBy inset: CGFloat = 0)heightToScreen(multipliedBy multiplier: CGFloat)heightToScreen(insetBy inset: CGFloat = 0)toSuperview()sizeToSuperview(multipliedBy multipliers: CGPoint)size(to size: CGSize)sizeToSuperview()widthToSuperview()widthToSuperview(multipliedBy multiplier: CGFloat)widthToSuperview(insetBy inset: CGFloat)heightToSuperview()heightToSuperview(multipliedBy multiplier: CGFloat)heightToSuperview(insetBy inset: CGFloat)toTop()toBottom()toLeft()toRight()
- ⌨️ XCode 11.0+
- 🖥 OSX 10.15+
- 📱 iOS 13.0+
Via SwiftPM, just add a link to this repo to your Package.swift file.
.package(url: "https://github.com/maximkrouk/SUILayout.git", from: "3.0.0")Or use XCodePM.
SUILayout is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SUILayout'and run pod install from the terminal.
Feel free to contribute or communicate.