- August 28, 2025
- Mins Read
NotchToolkit is a framework for iOS that allow developers use the iPhone X notch space in creative ways. Inspired by
I was working on this idea of blending app design with the #iPhoneX notch. 📲🤗 pic.twitter.com/lj2AhxWNeE
— Luboš Volkov⚡️ (@0therPlanet) September 18, 2017
Table of Contents |
Description |
|---|---|
| Documentation | Describes the configuration options NotchToolkit offers |
| Preview | Displays preview images of NotchToolkit features |
| Compatibility | Describes the NotchToolkit device and iOS compatibality |
| Example Project | Explains how to run the example project provided in this repository |
| Installation | Describes the CocoaPods, Carthage, and Manual options to install NotchToolkit |
| Implementation | Lists the steps needed to implement NotchToolkit into your project |
| More Options | Describes an extra feature NotchToolkit supports |
| License | Describes NotchToolkit license |


Although NotchToolkit is made for iPhone X, it can be implemented in older iPhone devices. This framework was tested on:
NotchToolkit requires
NotchToolkit has options to customize your Toolbar and UIView,
check Documentation and More Options for more details
To try the example project, simply download this repo then open NotchToolkit-Example.xcworkspace project file, found in the Example folder.
Terminal
$ sudo gem install cocoapods
Terminal
$ cd YOUR_PROJECT_FILE_PATH
Terminal
$ pod init
pod ‘NotchToolkit’
Terminal and install the pod
$ pod install
Cartfile in your project directory
github “AFathi/NotchToolkit”
$ carthage update
Drag the NotchToolkit.xcodeproj file into your project then add NotchToolkit as an embedded binary of your targets.
import NotchToolkit in a UIViewController classNotchToolbarDelegate in the delegate section
class ViewController: UIViewController, NotchToolbarDelegate
//A protocol method that’s triggered when the device rotates.
func deviceDidRotate() {
}
//A protocol method that’s triggered when an icon is selected.
func didTapToolIcon(_ tools: UICollectionView, toolIndex: IndexPath, section: Int, row: Int) {
}
NotchToolbar global variable
let toolbar = NotchToolbar()
toolbar in viewDidLoad
toolbar.notch.isVisible = true
toolbar.notch.height = 250
toolbar.toolList = [
//[icon image, title]
[UIImage(named:”pikachusquare”)!, “Pikachu”],
//only image icons
UIImage(named:”spongebob”)!,
//only string icons (mainly for emojis 😉)
“🤔”, “🤓”,
“📱”, “👩💻”,
“👨💻”, “✅”, “🔥”]
toolbar.delegate = self
toolbar.initializeToolbar(self)
autoResize() method in the deviceDidRotate delegate method
func deviceDidRotate() {
toolbar.autoResize()
}
You’re all set! 🤓
toolbarThis method allows you to show and hide the NotchToolbar. You can call this method in an IBAction that handles showing/hiding the toolbar.
@IBAction func buttonClicked(_ sender: UIButton) {
toolbar.showOrHide()
}
NotchToolbar delegate to self.didTapToolIcon delegate method:
func didTapToolIcon(_ tools: UICollectionView, toolIndex: IndexPath, section: Int, row: Int) {
if row == 0 {
print(“first icon”)
}else if row == 1 {
print(“second icon”)
}
}
This framework include a UIView extension that allow you draw a notch bezier path to any UIView class or subclass.
This is a UIView extension that allows you add ovals and rounded corners to any UIView.
oval, set curve scale from 1.0 – 10.0.corner, curve is the radius size.curveType & curvePosition for more info.
//horizontalSides draws an oval-based bezier path vertically on the right & left sides of a view.
myView.draw(.oval, position: .horizontalSides, curve: 1.5)
//diagonalAC draws rounded rectangle corners diagonally from topLeft to bottomRight of a view.
myView.draw(.corner, position: .diagonalAC, curve: 35)
This package provides you with an easy way to show tooltips over any SwiftUI view, since Apple does not provide ...
SimpleToast is a simple, lightweight, flexible and easy to use library to show toasts / popup notifications inside iOS or ...
Create Toast Views with Minimal Effort in SwiftUI Using SSToastMessage. SSToastMessage enables you to effortlessly add toast notifications, alerts, and ...