Goole LocationPicker
一款适用于应用的全功能且可自定义的位置选择器。
功能
- 易于使用 - 适用于应用的位置选择器可以在 5 行代码内集成,
LocationPicker
可以在 Storyboard 或程序中创建子类。 - 选择各种位置 - 用户可以从当前位置、搜索结果或应用提供的位置列表中选择位置。
- 无需担忧权限 -
LocationPicker
会为您请求位置权限。
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。
您可以使用以下命令安装 CocoaPods:
$ gem install cocoapods
要使用 CocoaPods 将 LocationPicker
集成到您的 Xcode 项目中,请在您的 Podfile
中指定它。
platform :ios, '8.0'
use_frameworks!
target 'YourApp' do
pod 'MMBGoogleLocationPicker'
end
快速开始
编程方式
导入 MMBGoogleLocationPicker
import MMBGoogleLocationPicker
注意:如果您通过 Cocoapods 安装
import MMBGoogleLocationPicker
呈现 MMBGoogleLocationPicker
,它需要嵌套在一个导航控制器内,以便可以取消显示。
LocationPicker.googleMapKey = "Your_Goole_map_key"
let locationPicker = LocationPicker.shared
locationPicker.pickCompletion = { (pickedLocationItem) in
if let coordinate = pickedLocationItem.coordinate {
debugPrint("Picked location is (latitude: \(coordinate.latitude), longitude: \(coordinate.longitude))")
}
}
locationPicker.addBarButtons()
// Call this method to add a done and a cancel button to navigation bar and set navigation bar background.
let navigationController = UINavigationController(rootViewController: locationPicker)
navigationController.navigationBar.isTranslucent = false
navigationController.navigationBar.tintColor = .white
navigationController.navigationBar.barTintColor = .black
navigationController.view.backgroundColor = .black
navigationController.viewControllers.first?.view.backgroundColor = .black
present(navigationController, animated: true, completion: nil)
func addBarButtons
此方法提供了 3 个可选参数。可以将 doneButtonItem
和 cancelButtonItem
设置为自定义的 UIBarButtonItem
对象。doneButtonOrientation
用于确定这两个按钮的排列方式。如果未提供任何参数,将使用两个系统样式按钮,将完成按钮放在右侧。
调用此方法后,可以通过 barButtonItems
属性访问这两个按钮。
func setColors
此方法旨在更方便地设置颜色。themColor
将设置为 currentLocationIconColor
、searchResultLocationIconColor
、alternativeLocationIconColor
、pinColor
。此方法还可以设置 primaryTextColor
和 secondaryTextColor
。
func setLocationDeniedAlertControllerTitle
此方法同时提供了 locationDeniedAlertController
的文本。
如果没有调用此方法,警告控制器将按以下方式呈现
授权 按钮将直接用户引导到设置,可以在其中更改位置访问权限。
文本
属性名称 | 默认值 | 目标 | 备注 |
---|---|---|---|
currentLocationText | "当前位置" | currentLocationCell.locationNameLabel.text | 表示用户当前位置的文本 |
searchBarPlaceholder | "搜索位置" | searchBar.placeholder | 请求用户搜索位置的文本 |
locationDeniedAlertTitle | "位置访问被拒绝" | alertController.title | 提醒控制器的标题文本 |
locationDeniedAlertMessage | "授予位置访问权限以使用当前位置" | alertController.message | 提醒控制器消息的文本 |
locationDeniedGrantText | "授予" | alertAction.title | 提醒控制器“授予”按钮的文本 |
locationDeniedCancelText | "取消" | alertAction.title | 提醒控制器“取消”按钮的文本 |
颜色
属性名称 | 默认值 | 目标 | 备注 |
---|---|---|---|
tableViewBackgroundColor | UIColor.white | tableView.backgroundColor | 表格视图的背景颜色 |
currentLocationIconColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | 当前位置单元格中显示的图标的颜色,可以通过属性currentLocationIconImage 更改图标图片 |
searchResultLocationIconColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | 搜索结果位置单元格显示的图标的颜色,可以通过属性searchResultLocationIconImage 更改图标图片 |
alternativeLocationIconColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | 备选位置单元格显示的图标的颜色,可以通过属性alternativeLocationIconImage 更改图标图片 |
pinColor | UIColor(hue: 0.447, saturation: 0.731, brightness: 0.569, alpha: 1) | UIImage() | 地图视图中中心的针的颜色,可以通过属性pinImage 更改针的图片 |
primaryTextColor | UIColor(colorLiteralRed: 0.34902, green: 0.384314, blue: 0.427451, alpha: 1) | 多项 | 搜索栏和位置名称标签在位置单元格中的文本颜色 |
secondaryTextColor | UIColor(colorLiteralRed: 0.541176, green: 0.568627, blue: 0.584314, alpha: 1) | 多项 | 位置单元格中地址标签的文本颜色 |
图片
属性名称 | 目标 | 备注 |
---|---|---|
currentLocationIconImage | currentLocationCell.iconView.image | 当前位置单元格中显示的图标图片,此图片的颜色不会受属性currentLocationIconColor 的影响 |
searchResultLocationIconImage | searchResultLocationCell.iconView.image | 搜索结果位置单元格中显示的图标图片,此图片的颜色不会受属性searchResultLocationIconColor 的影响 |
备选位置图标图像 | 备选位置单元.iconView.image | 在备选位置单元中显示的图标图像,该图像的颜色不会受到备选位置图标颜色 属性的影响 |
变更日志
贡献
- 如果你遇到任何错误或其他问题,请创建问题或拉取请求。
- 如果你想为
LocationPicker
添加更多功能,请随时创建拉取请求。 - 如果你擅长英语,请纠正我的英语。
- 如果你喜欢这个项目,请给它加星并与他人分享。
- 如果你已在你的应用程序中使用LocationPicker,请通过创建一个问题来告诉我。
许可协议
MIT 许可协议 (MIT)
版权所有 (c) 2016 Jerome Tan
兹特此免费许可,任何人获得本软件及其相关文档副本(以下简称“软件”),可以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向软件提供的人这样做,前提是遵守以下条件:
必须包含上述版权声明和本许可声明在内的所有副本或实质性部分。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权持有者不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他原因产生的,此类索赔、损害或其他责任源于、源于或与软件的使用或任何其他行为有关。