SUILayout 3.0.0

SUILayout 3.0.0

Maintained by mxcat..



SUILayout 3.0.0

SUILayout 🍃

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.

Usage

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()

Requirements

  • ⌨️ XCode 11.0+
  • 🖥 OSX 10.15+
  • 📱 iOS 13.0+

Installation

Primary:

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.

Secondary:

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.