- July 26, 2025
- Mins Read
Recreating the cool parallax icons from Apple TV as iOS UIButtons (in Swift). The effect is triggered by long pressing or dragging.
Import TVButton at the top of your Swift ViewController.
import TVButton
Create and position your TVButton in interface builder or in code.
For the parallax TVButton you will need at least two layers of images (three recommended). For best results, the button and the images should all have the same dimensions. Assign the relevant UIImages to TVButtonLayers and provide them as a layers array to the TVButton.
let background = TVButtonLayer(image: UIImage(named: “TVButtonBackground.png”)!)
let pattern = TVButtonLayer(image: UIImage(named: “TVButtonPattern.png”)!)
let top = TVButtonLayer(image: UIImage(named: “TVButtonTop.png”)!)
tvButton.layers = [background, pattern, top]
You can customize the parallax intensity of your TVButton. Default value is 1.0 and it’s very subtle. Maximum recommended value is 2.0.
tvButton.parallaxIntensity = 1.3
Enjoy!
source ‘https://github.com/CocoaPods/Specs.git’
pod ‘TVButton’, ‘~> 1.0’
Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate TVButton into your Xcode project using Carthage, specify it in your Cartfile
:
github “marmelroy/TVButton”
NavigationKit is a lightweight library which makes SwiftUI navigation super easy to use. 💻 Installation 📦 Swift Package Manager Using Swift Package Manager, add ...
An alternative SwiftUI NavigationView implementing classic stack-based navigation giving also some more control on animations and programmatic navigation. NavigationStack Installation ...
With SwiftUI Router you can power your SwiftUI app with path-based routing. By utilizing a path-based system, navigation in your app becomes ...
This package takes SwiftUI's familiar and powerful NavigationStack API and gives it superpowers, allowing you to use the same API not just ...