Recreates Apple TV's parallax icon effect as iOS UIButtons in Swift, triggered by long press or drag.
TVButton is an iOS library that recreates the parallax icon effect from Apple TV as customizable UIButtons in Swift. It allows developers to add dynamic, layered visual feedback to buttons in their iOS apps, triggered by long press or drag interactions. The effect simulates depth by moving multiple image layers at different intensities.
iOS developers looking to enhance their app's user interface with Apple TV-style visual effects and interactive button animations.
It provides an easy way to implement a polished, native-looking parallax effect without complex custom animations, using familiar UIKit components and simple layer-based image setup.
Recreating the cool parallax icons from Apple TV as iOS UIButtons (in Swift).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
It accurately mimics the polished parallax effect from Apple TV icons, as shown in the provided GIFs, delivering a high-end, native look with minimal effort.
The library uses a simple array of TVButtonLayer images for configuration, making it easy to integrate with existing design assets, as demonstrated in the code example with background, pattern, and top layers.
Developers can fine-tune the parallaxIntensity property from subtle (1.0) to pronounced (up to 2.0), allowing customization to match specific app designs, as highlighted in the README.
With support for CocoaPods and Carthage, integration is streamlined through standard iOS package managers, reducing setup time to just a few lines of code.
The parallax effect only triggers on long press or drag gestures, which may not align with common tap-based button interactions, limiting usability in standard UI flows.
It requires at least two (preferably three) layered images of identical dimensions, adding design complexity and resource management compared to simpler button solutions.
Built on UIKit, TVButton doesn't natively support SwiftUI, necessitating bridging code and making it less suitable for modern iOS projects adopting SwiftUI exclusively.