All Projects → gaetanomatonti → BottomSheet

gaetanomatonti / BottomSheet

Licence: MIT license
A BottomSheet component made with UIKit. Completely written in Swift 🧡

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to BottomSheet

SwiftUIKit
📱 UIKit code that is fun to write
Stars: ✭ 71 (+14.52%)
Mutual labels:  uikit, spm
OMJoystick
This is the JoyStick UI library for SwiftUI.
Stars: ✭ 15 (-75.81%)
Mutual labels:  spm, swiftpackagemanager
awesome-ios
A collaborative list of awesome for iOS developers. Include quick preview.
Stars: ✭ 1,329 (+2043.55%)
Mutual labels:  uikit, spm
column-text-view-ui
📄 Column Text View is an adaptive UI component that renders text in columns, horizontally [iOS 12, UIKit, TextKit, SwiftUI].
Stars: ✭ 11 (-82.26%)
Mutual labels:  uikit, spm
Overlaycontainer
Non-intrusive iOS UI library to implement overlay based interfaces
Stars: ✭ 777 (+1153.23%)
Mutual labels:  uikit, bottomsheet
swift-declarative-configuration
Declarative configuration for your objects
Stars: ✭ 46 (-25.81%)
Mutual labels:  uikit, spm
CircularProgressView
Circular and animated progress bar for iOS
Stars: ✭ 25 (-59.68%)
Mutual labels:  spm, swiftpackagemanager
trace-cocoa-sdk
Catch bugs before they reach production — get detailed crash reports and monitor how your app is performing across the entire install base.
Stars: ✭ 15 (-75.81%)
Mutual labels:  uikit, spm
JXBottomSheetTableView
A highly packaged, easy to use custom bottom sheet UITableView.
Stars: ✭ 47 (-24.19%)
Mutual labels:  bottomsheet
bootstrap4-ui-kit-for-indesign
Bootstrap 4 UI Kit for Adobe InDesign
Stars: ✭ 11 (-82.26%)
Mutual labels:  uikit
SwiftyPods
Type safe pods
Stars: ✭ 15 (-75.81%)
Mutual labels:  spm
SwiftCurrent
A library for managing complex workflows in Swift
Stars: ✭ 286 (+361.29%)
Mutual labels:  uikit
AmapLike
【高仿】高德地图 包含定位、搜索、路径规划等功能 map bottomsheet
Stars: ✭ 51 (-17.74%)
Mutual labels:  bottomsheet
PagedLists
Paginated UITableView and UICollectionViews for iOS.
Stars: ✭ 69 (+11.29%)
Mutual labels:  spm
XCoordinator-Example
XCoordinator-Example serves as an MVVM-C example app for XCoordinator
Stars: ✭ 53 (-14.52%)
Mutual labels:  uikit
PopItUp
a Popup system for iOS
Stars: ✭ 26 (-58.06%)
Mutual labels:  uikit
UIComponent
Write UI in crazy speed, with great perf & no limitations.
Stars: ✭ 333 (+437.1%)
Mutual labels:  uikit
pikko
Color picker for iOS made with ❤️
Stars: ✭ 34 (-45.16%)
Mutual labels:  uikit
WWDC-2017-Session-230-Advance-Animations-with-UIKit
Example project for "Sam's Photo" animations demonstrated in Session 203
Stars: ✭ 35 (-43.55%)
Mutual labels:  uikit
Shades
Easily add drop shadows, borders, and round corners to a UIView.
Stars: ✭ 14 (-77.42%)
Mutual labels:  uikit

BottomSheet

A Bottom Sheet component made in UIKit.

Installation

Swift Package Manager

Xcode Project

To add a package dependency to your Xcode project, select File > Swift Packages > Add Package Dependency and enter the repository URL:

https://github.com/gaetanomatonti/BottomSheet

Swift Package

Edit your Package.swift file and add the repository URL to the dependencies.

dependencies: [
    .package(url: "https://github.com/gaetanomatonti/BottomSheet", .upToNextMajor(from: "0.4.0"))
]

Usage

Presentation

Inside your view controller store a new instance of SheetTransitioningDelegate. When presenting a new view controller you should set its modalPresentationStyle to .custom and its transitioningDelegate to the SheetTransitioningDelegate you stored.

let sheetTransitioningDelegate = SheetTransitioningDelegate()

func presentViewController() {
  let viewController = UIViewController()
  viewController.modalPresentationStyle = .custom
  viewController.transitioningDelegate = sheetTransitioningDelegate
  present(viewController, animated: true)
}

Dismissal

The sheet can be dismissed interactively by the user by dragging the sheet towards the bottom of the screen or by tapping on the area outside of the sheet. It can also be dismissed programmatically just like any other view controller.

func dismissSheet() {
  dismiss(animated: true)
}
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].