Skip to content

Latest commit

 

History

History
58 lines (41 loc) · 1.43 KB

README.md

File metadata and controls

58 lines (41 loc) · 1.43 KB

PerspectiveKit

3D tilt with a dynamic shadow, like widget previews in iOS. SwiftUI & UIKit.

Installation

In Xcode: File → Add Package Dependencies → paste URL:

https://github.com/sparrowcode/PerspectiveKit

Usage

SwiftUI

WidgetPreview()
    .perspective(.widgetAnimatable)

UIKit

// Content goes into contentView, like in UIVisualEffectView
let perspectiveView = PerspectiveView(config: .widgetAnimatable)
perspectiveView.contentView.addSubview(widgetPreview)

// A single rounded card with a background gets a cheaper shadow from its shape
widgetPreview.layer.cornerRadius = 22
widgetPreview.clipsToBounds = true

// Tilt off and on with a transition
perspectiveView.setTilted(false, animated: true)
perspectiveView.setTilted(true, animated: true)

// Start the transition later
perspectiveView.setTilted(true, animated: true, delay: 0.3)

// Appear: grayscale right away, color returns together with the tilt
perspectiveView.setTilted(true, animated: true, fromGrayscale: true, delay: 0.3)

// Without animation
perspectiveView.isTilted = false

Config

// .widgetStatic tilts without animation. Every value is configurable
var config = PerspectiveConfig.widgetAnimatable
config.angle = 14
config.corner = .topLeft
config.animation = PerspectiveAnimation(duration: 10, direction: .counterclockwise)
config.shadow?.opacity = 0.4