Skip to content

Apple Map's bottom sheet with animated gestures and state-machine transitions & scrolling.

License

Notifications You must be signed in to change notification settings

philip-bui/mapkit-search-view

Repository files navigation

MapKit Search View

CI Status CodeCov Version Carthage Compatible Platform License

An implementation of Apple's Map search view.

  • Animation between states and keyboard events.
  • Single gesture to scroll table view or drag down sheet.
  • Map user tracking (Follow, Follow with Heading).
  • Compass on non-north headings.
  • Customizable colors, search options.

Requirements

  • iOS 11.0+
  • Xcode 10.3+
  • Swift 4.2+

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate MapKit Search View into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'MapKitSearchView'

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate MapKit Search View into your Xcode project using Carthage, specify it in your Cartfile:

github "philip-bui/mapkit-search-view"

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. It is in early development, but MapKit Search View does support its use on supported platforms.

Once you have your Swift package set up, adding MapKit Search View as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/philip-bui/mapkit-search-view.git", from: "1.0.0"))
]

Usage

import MapKitSearchView

let mapKitSearch = MapKitSearchViewController(delegate: self)
mapKitSearch.tintColor = nil // Tints the close, userTracking and searchBar cursor colors.
mapKitSearch.markerTintColor = nil // Tints map annotations and mapItem results.
mapKitSearch.completionEnabled = true // Enables search completions as you type.
mapKitSearch.geocodeEnabled = true // Enables geocoding when tapping on a map at street levels.
mapKitSearch.userLocationRequest = .authorizedAlways // Requests location permission on view load.

Improvements

  • Tablet / Landscape UI.
  • Additional information on duplicate place names.
  • Strings Localization.
  • Optional delegate methods to customize UI views (Search Bar, Table View rows).
  • Add Bottom Sheet states (collapsed, peek, expanded) for users to choose.

License

MapKit Search View is available under the MIT license. See LICENSE for details.

About

Apple Map's bottom sheet with animated gestures and state-machine transitions & scrolling.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published