⚠️ Breaking changes in 1.0.0.
BottomSheetViewConfiguration now expects
UImage? as close icon instead of bool flag
✅ SnapKit is no longer a dependency since 1.2.0
.byContent anchor mode is available since 1.3.0.
BottomSheetView can now resize itself to match the subviews content height as long as it's smaller than screen height
This is iOS Maps like anchored bottom sheet with configurable anchors and reusable
BottomSheetView, that can be used inside provided modal controller or without it.
BottomSheetView supports all kinds of
UIScrollView and it's ancestors as a container view.
BottomSheetViewController is intended to be used as a modal presented controller.
BottomSheetView you should use
BottomSheetViewConfiguration struct like this:
let config = BottomSheetViewConfiguration( contentView: UIView(), parentViewController: self, defaultPosition: .middle(), positions: [.top(), .middle(), .bottom()], isSlidingToAppear: false, isPullIndicatorNeeded: true, closeButtonIcon: UIImage(named: "closeIcon"), isDismissAllowed: false, cornerRadius: 16 )
Each anchor has associated value, which will override default height for this anchor. By content mode is not yet implemented, feel free to open a pull request.
Once configuration is done, you should create
BottomSheetView like this:
let bottomSheetView = BottomSheetView(configuration: configuration)
If you want to use this view for some complex UI cases,
BottomSheetView will handle the pan gesture and will notify
heightDidChange(to height: CGFloat) method
If you want to implement general pop-up behaviour, you should use
BottomSheetViewController. Create and present it like so:
let bottomSheetViewController = BottomSheetViewController(bottomSheetView: bottomSheetView) bottomSheetViewController.delegate = self bottomSheetViewController.present(from: self)
AnchoredBottomSheet is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'AnchoredBottomSheet', '~> 1.3.5'
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update $ brew install carthage
To integrate AnchoredBottomSheet into your Xcode project using Carthage, specify it in your
github "havebeenfitz/anchoredbottomsheet" "1.3.5"
carthage update to build the framework and drag the built
SnapKit.framework into your Xcode project.
Swift Package Manager is a tool for managing the distribution of Swift code. It’s integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
Xcode 11+ is required to build AnchoredBottomSheet using Swift Package Manager.
To integrate AnchoredBottomSheet into your Xcode project using Swift Package Manager, add it to the dependencies value of your
dependencies: [ .package( url: "https://github.com/havebeenfitz/anchoredbottomsheet.git", .upToNextMajor(from: "1.3.5") ) ]
If you prefer not to use either of the aforementioned dependency managers, you can integrate AnchoredBottomSheet into your project manually.
Xcode 12+, iOS deployment target ≥ 10
AnchoredBottomSheet is available under the MIT license. See the LICENSE file for more info.
|Last commit: 6 weeks ago|