Swiftpack.co - Package - dogo/SketchKit

Build Status codecov Cocoapods compatible SPM compatible Carthage compatible License

SketchKit is a lightweight, powerful and pure-Swift auto layout library, you can set up your constraints with a simple and intuitive code without any stringly typing.

In short, it allows you to replace this:

newView.translatesAutoresizingMaskIntoConstraints = false

addConstraint(NSLayoutConstraint(
              item: newView,
              attribute: NSLayoutConstraint.Attribute.centerX,
              relatedBy: NSLayoutConstraint.Relation.equal,
              toItem: view,
              attribute: NSLayoutConstraint.Attribute.centerX,
              multiplier: 1,
              constant: 0))

or

newView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true

with this

// It's NOT necessary: newView.translatesAutoresizingMaskIntoConstraints = false
newView.layout.applyConstraint { view in
    view.centerXAnchor(equalTo: self.view.centerXAnchor)
    view.centerYAnchor(equalTo: self.view.centerYAnchor)
}

Requirements

  • iOS 9.0+ / tvOS 9.0+
  • Swift 3.2+

Installation

CocoaPods

To integrate SketchKit into your Xcode project using CocoaPods, specify it in your Podfile:

target '<Your Target Name>' do
  pod 'SketchKit'
end

Then, run the following command:

$ pod install

Swift Package Manager (SPM)

To add SketchKit as a dependency, you have to add it to the dependencies of your Package.swift file and refer to that dependency in your target.

import PackageDescription
let package = Package(
    name: "<Your Product Name>",
    dependencies: [
       .package(url: "https://github.com/dogo/SketchKit", .upToNextMajor(from: "1.0.0"))
    ],
    targets: [
        .target(
            name: "<Your Target Name>",
            dependencies: ["SketchKit"]),
    ]
)

After adding the dependency, you can fetch the library with:

$ swift package resolve

Carthage

github "dogo/SketchKit"

Usage

Quick Start

import SketchKit

final class MyViewController: UIViewController {

    let myView: UIView = {
        let view = UIView(frame: .zero)
        view.color = .red
        return view
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.addSubview(myView)

        myView.layout.applyConstraint { view in
            view.topAnchor(equalTo: self.view.topAnchor)
            view.leadingAnchor(equalTo: self.view.leadingAnchor)
            view.bottomAnchor(equalTo: self.view.bottomAnchor)
            view.trailingAnchor(equalTo: self.view.trailingAnchor)
        }
    }
}

Credits

  • Nicholas Babo (@NickBabo) thank you for the SketchKit logo,

License

SketchKit is released under the MIT license. See LICENSE for details.

Github

link
Stars: 33

Dependencies

Used By

Total: 0

Releases

Expand your relations - 2020-07-28 20:07:53

Add Height and Anchor constraints with lessThanOrEqual and greaterThanOrEqual relation

Getting dirty - 2020-06-30 04:43:25

Add anchors support to UILayoutGuide

A little boost of energy - 2020-01-25 13:58:52

Add support to leftAnchor and safeLeftAnchor Add support to rightAnchor and safeRightAnchor

Welcome to paradise - 2019-10-07 20:32:08

Initial release.