如何在谷歌地图上快速更改我的位置按钮的位置
Posted
技术标签:
【中文标题】如何在谷歌地图上快速更改我的位置按钮的位置【英文标题】:How to change the location of myLocationButton of Google Map in swift 【发布时间】:2016-08-12 07:58:49 【问题描述】:我是 swift 的新手,我正在制作一个应用程序,我在其中使用适用于 ios 的 Gogle Map SDK。我使用了 myLocationButton,它最初设置在右下角。我只是想改变它的位置。
我想将 MyLocationButton 放置在当前显示地球按钮图像的位置。
提前致谢。
【问题讨论】:
非常感谢@Anbu 投票 【参考方案1】:Google Maps SDK for iOS 提供了一些内置的 UI 控件,这些控件类似于 Google Maps for iOS 应用程序中的控件。每个控件都有一个相对于地图边缘的预定位置。您可以通过填充地图将控件从边缘移开。 Google 地图旨在填充 GMSMapView 定义的整个区域。要向地图添加填充,请创建一个 UIEdgeInsets 对象并将其传递给 GMSMapView.padding 属性。
// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;
有关更多信息,您可以查看此相关 SO 问题 26968364 和 16879694
【讨论】:
【参考方案2】:mapView.padding = UIEdgeInsets(top: 0, left: 0, bottom: 10, right:0)
Swift 3.0,更改按钮位置
【讨论】:
【参考方案3】:Swift 2.3:仅移动位置按钮的解决方案。我正在使用 pod 'GoogleMaps', '~> 2.1'。
for object in mapView.subviews
if object.theClassName == "GMSUISettingsView"
for view in object.subviews
if view.theClassName == "GMSx_QTMButton"
var frame = view.frame
frame.origin.y = frame.origin.y - 110 // Move the button 110 up
view.frame = frame
获取类名的扩展。
extension NSObject
var theClassName: String
return NSStringFromClass(self.dynamicType)
我会尽快将此代码更新到 Swift 3.0。 :)
Swift 4.0:
public extension NSObject
public var theClassName: String
return NSStringFromClass(type(of: self))
【讨论】:
以上是关于如何在谷歌地图上快速更改我的位置按钮的位置的主要内容,如果未能解决你的问题,请参考以下文章