MapControls の位置を変更するには、マップビューのパディングを設定します。
let mapView = GMSMapView()
mapView.isMyLocationEnabled = true
mapView.settings.myLocationButton = true
mapView.padding = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 50)
それは私の位置制御のパディングを変更します。下から50px、右から50px
下と右から50pxのパディングを追加した以下のスクリーンショットを参照してください。
Subramanianと同様に、これは非常にうまく機能します。
mapView.padding = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)
これは、アプリにナビゲーションバーがある場合に最適です。
Swift 4の更新:ロケーションボタンの位置のみを変更します
for object in self.mapView.subviews{
if(object.theClassName == "GMSUISettingsPaddingView"){
for view in object.subviews{
if(view.theClassName == "GMSUISettingsView"){
for btn in view.subviews{
if(btn.theClassName == "GMSx_QTMButton"){
var frame = btn.frame
frame.Origin.y = frame.Origin.y - 100
btn.frame = frame
}
}
}
}
}
}
public extension NSObject {
public var theClassName: String {
return NSStringFromClass(type(of: self))
}
}