3D tilt with a dynamic shadow, like widget previews in iOS. SwiftUI & UIKit.
In Xcode: File → Add Package Dependencies → paste URL:
https://github.com/sparrowcode/PerspectiveKit
WidgetPreview()
.perspective(.widgetAnimatable)// 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)
// Without animation
perspectiveView.isTilted = false// .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