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