Swiftpack.co - dankinsoid/VDPin as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by dankinsoid.
dankinsoid/VDPin 1.0.3
Convenience pin methods for constraints creation
⭐️ 0
🕓 2 weeks ago
.package(url: "https://github.com/dankinsoid/VDPin.git", from: "1.0.3")


CI Status Version License Platform


This repository provides some convenience methods for creating constraints.


  1. Pin attributes of the view to a specified item or its superview.
view.pin(.edges(.horizontal), 16)
view.pin(edges(.top, .bottom), 10, to: safeAreaLayoutGuide)
view.pin(edges: [.top: 10, .horizontal: 5], to: safeAreaLayoutGuide)
// pin view after/before another view
rightView.pin(to: .trailing, of: leftView, options: .offset(10))
view.pin(.center, 10)
view.pin([.size: 100, .centerY: 10, .top: 20, .edges(.horizontal): 10])
  1. Pin any attributes between two views
view.pin(.top, to: .centerY, of: anotherView)
  1. Set aspect ratio of the view.
view.pin(aspectRatio: 2 / 3)
  1. All pin methods contain a with options parameter.
view.pin(.edges, 10, options: .priority(.required))


  • .priority(300): set the priority of the constraint
  • .offset(10): set the offset of the constraint
  • .multiplier(2): set the multiplier of the constraint
  • .relation(.greaterThanOrEqual), .greaterThanOrEqual, .lessThanOrEqual: set the relation of the constraint
  • .inactive, .activated(false): set the active state of the constraint
  • .update: update the constraint if it already exists
  • .translatesAutoresizingMask: don't change translatesAutoresizingMaskIntoConstraints property
  • .safeArea: use safeAreaLayoutGuide instead of superview as default second item
  1. All these methods can be chained
    .pin(.edges(.horizontal), 10)
    .pin(to: .bottom, of: anotherView.pin(.height, 50), options: .offset(20))
    .pin(.size, 100)
  1. Use PartialRangeThrough and PartialRangeFrom for offset value
view.pin(.bottom, 10..., with: .safeArea)
view.pin(to: .bottom, of: anotherView, options: .offset(...10))
  1. All these methods return Constraints object, that can be used for updating constraints.


  1. Swift Package Manager

Create a Package.swift file.

// swift-tools-version:5.7
import PackageDescription

let package = Package(
  name: "SomeProject",
  dependencies: [
    .package(url: "https://github.com/dankinsoid/VDPin.git", from: "1.0.3")
  targets: [
    .target(name: "SomeProject", dependencies: ["VDPin"])
$ swift build
  1. CocoaPods

Add the following line to your Podfile:

pod 'VDPin'

and run pod update from the podfile directory first.


dankinsoid, [email protected]


VDPin is available under the MIT license. See the LICENSE file for more info.


Stars: 0
Last commit: 1 week ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics