OverlappingViewsSeparator

A library for separate overlapping views with swift.

OverlappingViewsSeparator

Minimum Example

import UIKit
import OverlappingViewsSeparator

class ViewController: UIViewController {
    @IBOutlet private var overlappingViews: [UIView]!
    private let separator = OverlappingViewsSeparator(minSpacing: 8)
    
    override func viewDidLoad() {
        super.viewDidLoad()
        separator.register(views: overlappingViews)
    }

    @IBAction private func apply() {
        separator.separate()
    }
}

Installation

SwiftPM (Recommended)

  • On Xcode, click File > Swift Packages > Add Package Dependency...
  • Input https://github.com/malt03/OverlappingViewsSeparator.git

CocoaPods

  • Insert pod 'OverlappingViewsSeparator' to your Podfile.
  • Run pod install.

Advanced Example

Separate with animation

separator.separate { (reflect) in
    UIView.animate(withDuration: 1) {
        reflect()
    }
}

Register stuck view

separator.register(stuckView: stuckView)

Reset

separator.reset()

Set queue

let separator = OverlappingViewsSeparator(queue: .main) // default: .global()

GitHub