Swipable tab and menu View and ViewController.
SwipeMenuViewController
Swipe-based paging UI for iOS: a scrollable tab bar sits above a horizontally paging content area, and swiping the content keeps the tab selection in sync. You populate it through data source and delegate protocols modeled on UIKit's own, and tune its appearance with SwipeMenuViewOptions.
| Segmented Tab & Underline | Flexible Tab & Underline | Flexible Tab & Circle | |:---:|:---:|:---:| |
|
|
|
Requirements
- iOS 16.0+
- Xcode 26.0+ / Swift 6.2+
Need an older toolchain or deployment target? Use the 4.x releases.
Installation
SwipeMenuViewController is distributed with Swift Package Manager. In Xcode, choose File ⸠Add Package Dependencies⦠and enter the repository URL, or add it to a Package.swift manifest:
dependencies: [
.package(url: "https://github.com/yysskk/SwipeMenuViewController.git", .upToNextMajor(from: "5.0.0"))
]
Quick Start
Subclass SwipeMenuViewController and add your pages as child view controllers. Each child becomes a page: its title is the tab title and its view is the page content.
import SwipeMenuViewController
final class MenuViewController: SwipeMenuViewController {
override func viewDidLoad() { pages.forEach { addChild($0) } super.viewDidLoad() }
private let pages: [UIViewController] = { let first = UIViewController() first.title = "First" let second = UIViewController() second.title = "Second" return [first, second] }() }
To embed the paging UI in a view hierarchy you already have, add a SwipeMenuView directly and drive it through SwipeMenuViewDataSource β the Getting Started article walks through both approaches.
Documentation
The full API reference and guides are published with DocC:
- Getting Started β set up
SwipeMenuVieworSwipeMenuViewController - Customizing Appearance β every
SwipeMenuViewOptionsfield
Contributing
Bug reports and pull requests are welcome. See CONTRIBUTING.md for how to build, test, format, and document your changes, then open an issue using one of the templates. Make sure the test suite passes before submitting:
xcodebuild test -scheme SwipeMenuViewController -destination 'platform=iOS Simulator,name=iPhone 16'
Changelog
See CHANGELOG.md for the release history.
License
SwipeMenuViewController is available under the MIT license. See the LICENSE file for details.