yysskk
SwipeMenuViewController
Swift

Swipable tab and menu View and ViewController.

Last updated Jul 7, 2026
1.3k
Stars
129
Forks
26
Issues
+1
Stars/day
Attention Score
90
Language breakdown
No language data available.
β–Έ Files click to expand
README

SwipeMenuViewController

Platform Swift SPM compatible CI Documentation License

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:

Read the documentation β†’

You can also build the documentation locally in Xcode with Product β–Έ Build Documentation, or explore the Example app in this repository (its Xcode project is generated with XcodeGen β€” see the Example README).

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.

Β© 2026 GitRepoTrend Β· yysskk/SwipeMenuViewController Β· Updated daily from GitHub