OfTheWolf / Ubottomsheet
Licence: mit
iPhone Maps App bottom sheet - A Protocol Oriented Approach
Stars: ✭ 259
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
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
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
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 |
---|---|---|---|
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].