All Projects → OfTheWolf → Ubottomsheet

OfTheWolf / Ubottomsheet

Licence: mit
iPhone Maps App bottom sheet - A Protocol Oriented Approach

Programming Languages

swift
15916 projects
swift4
162 projects

Projects that are alternatives of or similar to Ubottomsheet

react-spring-bottom-sheet
Accessible ♿️, Delightful ✨, & Fast 🚀
Stars: ✭ 604 (+133.2%)
Mutual labels:  bottom-sheet, bottomsheet
React Native Bottomsheet Reanimated
React Native bottom sheet with fully native 60 FPS animations and awesome user experience
Stars: ✭ 80 (-69.11%)
Mutual labels:  bottomsheet, bottom-sheet
React Native Scroll Bottom Sheet
Cross platform scrollable bottom sheet with virtualisation support, native animations at 60 FPS and fully implemented in JS land 🔥
Stars: ✭ 1,226 (+373.36%)
Mutual labels:  bottomsheet, bottom-sheet
Bottomify Navigation View
A nice looking Spotify like bottom navigation view
Stars: ✭ 97 (-62.55%)
Mutual labels:  bottomsheet, bottom-sheet
Gtsheet
An easy to integrate solution for presenting UIViewControllers in a bottom sheet
Stars: ✭ 282 (+8.88%)
Mutual labels:  iphone, bottomsheet
React Native Bottom Sheet
A performant interactive bottom sheet with fully configurable options 🚀
Stars: ✭ 2,695 (+940.54%)
Mutual labels:  bottomsheet, bottom-sheet
Stickytabbarviewcontroller
Sticky and Collapsible View on top of tab bar
Stars: ✭ 82 (-68.34%)
Mutual labels:  bottomsheet, bottom-sheet
Stpopup
STPopup provides STPopupController, which works just like UINavigationController in popup style, for both iPhone and iPad. It's written in Objective-C and compatible with Swift.
Stars: ✭ 2,517 (+871.81%)
Mutual labels:  iphone, bottom-sheet
BottomSheetBehavior
BottomSheetBehavior is an android library extracted from the Google I/O 2018 application source code.
Stars: ✭ 12 (-95.37%)
Mutual labels:  bottom-sheet, bottomsheet
blobile
Blases Loaded - Unofficial Live Blaseball Game Viewer for iOS, Android, and Web
Stars: ✭ 16 (-93.82%)
Mutual labels:  iphone
SpecTools
Write less test code with this set of spec tools. Swift, iOS, testing framework independent (but works well with Quick/Nimble or directly).
Stars: ✭ 38 (-85.33%)
Mutual labels:  iphone
ios code sign
iOS 签名简介
Stars: ✭ 23 (-91.12%)
Mutual labels:  iphone
iosvpn.github.io
iPhone和iOS 翻墙梯子VPN推荐,2022中国苹果手机iPhone翻墙软件和科学上网避坑指南,稳定梯子推荐。
Stars: ✭ 72 (-72.2%)
Mutual labels:  iphone
socket-chat
This project will help you build a chat app by using the Socket IO library.
Stars: ✭ 36 (-86.1%)
Mutual labels:  iphone
iOS interviews
iOS Interviews - 史上最贴心 iOS 面试知识点分享!不只是 iOS !只为技术的执拗 !👍 全网火速更新中 🔥 期待你的讨论,期待你的 issue ! 🌟
Stars: ✭ 25 (-90.35%)
Mutual labels:  iphone
D2PCurvedModal
An elegant and curved modal View for iOS (Swift)
Stars: ✭ 59 (-77.22%)
Mutual labels:  iphone
PullableSheet
Pullable sheet like a default map app or bottom sheets (Android).
Stars: ✭ 65 (-74.9%)
Mutual labels:  bottomsheet
Layou-For-All-iPhone
针对于iPhone全机型,对比iPhone6的适配方案
Stars: ✭ 13 (-94.98%)
Mutual labels:  iphone
NBBottomSheet
An iOS library that presents a bottom sheet using Auto Layout.
Stars: ✭ 60 (-76.83%)
Mutual labels:  bottom-sheet
OwlBottomSheet
Simple library to show a bottom sheet like Owl app from Material Design studies cases
Stars: ✭ 44 (-83.01%)
Mutual labels:  bottomsheet

Next Level

Language Version Platform License

Features
📍 Apple Maps bottom sheet behaviour
Supports panning with UIScrollView and UIView
🌒 Allows adding dimmable background view
📱 Set sheet content as UIViewController or UINavigationController
📖 Navigation inside sheet with UINavigationController
🌈 Add one or more sheet stop positions
🎯 Change sheet position programmatically
🌀 Present as many sheet as you want
🚀 Move multiple sheets simultaneously or seperately
🏹 Rubber banding
👋 Dismiss at bottom

Demos

Apple Maps & Childs Navigation In Sheet Pull To Dismiss Multiple Sheet Positions
Tag Tag Tag Tag

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Bottom sheet child view controllers must conform to the Draggable protocol.

class MapsDemoBottomSheetController: UIViewController, Draggable{
    @IBOutlet weak var tableView: UITableView!
      
    override func viewDidLoad() {
        super.viewDidLoad()
        if #available(iOS 11.0, *) {
            tableView.contentInsetAdjustmentBehavior = .never
        } else {
            automaticallyAdjustsScrollViewInsets = false
        }
        tableView.delegate = self
        tableView.dataSource = self
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        //adds pan gesture recognizer to draggableView()
        sheetCoordinator?.startTracking(item: self) 
    }

//  MARK: Draggable protocol implementations

    var sheetCoordinator: UBottomSheetCoordinator? 

    func draggableView() -> UIScrollView? {
        return tableView
    }
}

Create a UBottomSheetCoordinator from the main view controller. Use the UBottomSheetCoordinator to add and configure the sheet.

// parentViewController: main view controller that presents the bottom sheet
// call this within viewWillLayoutSubViews to make sure view frame has measured correctly. see example projects. 
let sheetCoordinator = UBottomSheetCoordinator(parent: parentViewController)

let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MapsDemoBottomSheetController") as! MapsDemoBottomSheetController

vc.sheetCoordinator = sheetCoordinator

sheetCoordinator.addSheet(vc, to: parentViewController)

Requirements

ios9.0+, Xcode10+

Installation

UBottomSheet is available through CocoaPods and Swift Package Manager.

CocoaPods

Add the following line to your Podfile:

pod 'UBottomSheet'

SPM

Add this url in XCode > File > Swift Packages > Add Package Dependency:

https://github.com/OfTheWolf/UBottomSheet

See Also

TwitterProfile Nested scroll view behaviour of Twitter Profile screen.

Author

uğur, [email protected]

License

UBottomSheet is available under the MIT license. See the LICENSE file for more info.

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].