All Projects β†’ AFathi β†’ NotchToolkit

AFathi / NotchToolkit

Licence: MIT license
Use the iPhone X notch in creative ways πŸ‘©β€πŸŽ¨πŸ‘¨β€πŸŽ¨.

Programming Languages

swift
15916 projects
shell
77523 projects
objective c
16641 projects - #2 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to NotchToolkit

Sequents
A simple continuous animation library for iOS UI.
Stars: ✭ 31 (-43.64%)
Mutual labels:  uiview, swift-framework
extensions-kit
πŸ“¦ Collection of Swift+Apple Frameworks extensions for speeding up software development [iOS & iPadOS].
Stars: ✭ 71 (+29.09%)
Mutual labels:  uiview, swift-framework
FormToolbar
Simple, movable and powerful toolbar for UITextField and UITextView.
Stars: ✭ 85 (+54.55%)
Mutual labels:  toolbar, swift-framework
DrawContainerDemo
δ½œδΈšη›’ε­ζ‰Ήζ³¨ζŽ§δ»ΆεηΌ–θ―‘
Stars: ✭ 17 (-69.09%)
Mutual labels:  draw
OpcacheBundle
Displays the PHP OPcache status in the Symfony profiler toolbar.
Stars: ✭ 21 (-61.82%)
Mutual labels:  toolbar
tool-bar
Package providing customisable toolbar for Atom
Stars: ✭ 161 (+192.73%)
Mutual labels:  toolbar
BlurKit
A lightweight library that can easily blur the view.
Stars: ✭ 17 (-69.09%)
Mutual labels:  uiview
GnuPlot
A PHP Library for using GnuPlot
Stars: ✭ 26 (-52.73%)
Mutual labels:  draw
YMFF
Feature management made easy.
Stars: ✭ 26 (-52.73%)
Mutual labels:  swift-framework
Whatsapp Android App
This is sample code for layout for chatting app like Whatsapp.
Stars: ✭ 32 (-41.82%)
Mutual labels:  toolbar
Switch
Manage chrome extensions from the toolbar
Stars: ✭ 13 (-76.36%)
Mutual labels:  toolbar
drawa-android
🎨 Drawing application for Android made easy
Stars: ✭ 16 (-70.91%)
Mutual labels:  draw
swift-nio-redis
A high performance Redis protocol (RESP) implementation for SwiftNIO
Stars: ✭ 27 (-50.91%)
Mutual labels:  swift-framework
leaflet-paintpolygon
Leaflet plugin to create polygon with circle as paint
Stars: ✭ 38 (-30.91%)
Mutual labels:  draw
EquationKit
Equations in Swift
Stars: ✭ 39 (-29.09%)
Mutual labels:  swift-framework
MicroExpress
A micro web server framework on top of Swift NIO
Stars: ✭ 125 (+127.27%)
Mutual labels:  swift-framework
GoneVisible
GoneVisible is a UIView extension that uses AutoLayout to add "gone" state like Android.
Stars: ✭ 27 (-50.91%)
Mutual labels:  uiview
Swatch
Watcher for Unit Tests written in Swift
Stars: ✭ 55 (+0%)
Mutual labels:  iphone-x
AnalogClock
Animated analog for iOS clock written in Swift
Stars: ✭ 24 (-56.36%)
Mutual labels:  uiview
MaterialSettings
The open repository with a global support for Android 5 Toolbar within any Settings Activity
Stars: ✭ 58 (+5.45%)
Mutual labels:  toolbar

NotchToolkit

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

Preview

NotchImageView

imageViewPreview

NotchToolbar

toolbarPreview

Draw Notch

drawPreview

Compatibility

Although NotchToolkit is made for iPhone X, it can be implemented in older iPhone devices. This framework was tested on:

  1. iPhone X
  2. iPhone 8 plus, 7 plus, 6s plus and 6 plus
  3. iPhone 8, 7, 6s and 6
  4. iPhone SE and 5s

NotchToolkit requires

  • iOS 11
  • Swift 3.2 or higher

NotchToolkit has options to customize your Toolbar and UIView,

check Documentation and More Options for more details.

Example Project

To try the example project, simply download this repo then open NotchToolkit-Example.xcworkspace project file, found in the Example folder.

Installation

CocoaPods

  1. Download CocoaPods using this command in Terminal
$ sudo gem install cocoapods
  1. Redirect to your project folder in Terminal
$ cd YOUR_PROJECT_FILE_PATH
  1. Initialize a pod in Terminal
$ pod init
  1. Open Podfile in a text editor and add this line
pod 'NotchToolkit'
  1. Go back to Terminal and install the pod
$ pod install

Carthage

  1. Add this line to the Cartfile in your project directory
github "AFathi/NotchToolkit"
  1. Update your Carthage directory
$ carthage update

Manual

Drag the NotchToolkit.xcodeproj file into your project then add NotchToolkit as an embedded binary of your targets.

Implement in your project

  1. import NotchToolkit in a UIViewController class
  2. Add NotchToolbarDelegate in the delegate section
class ViewController: UIViewController, NotchToolbarDelegate
  1. Add delegate methods
//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) {
}
  1. Create a NotchToolbar global variable
let toolbar = NotchToolbar()
  1. Configure and initialize 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)
  1. Call autoResize() method in the deviceDidRotate delegate method
func deviceDidRotate() {
toolbar.autoResize()
}

You're all set! πŸ€“

Show and Hide toolbar

showOrHide()

This 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()
}

Handle Icon Selection

  1. Make sure you set the NotchToolbar delegate to self.
  2. Handle the icon selection in the 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")
}
}

More Options

This framework include a UIView extension that allow you draw a notch bezier path to any UIView class or subclass.

draw(_ notch:curveType, position:curvePosition, curve:CGFloat?, customBounds:CGRect? = nil)

This is a UIView extension that allows you add ovals and rounded corners to any UIView.

  • For type oval, set curve scale from 1.0 - 10.0.
  • For type corner, curve is the radius size.
  • Check curveType & curvePosition for more info.

Example

//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)

Preview

Demo

LICENSE

NotchToolkit is under MIT license. Check the LICENSE file for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].