【问题标题】:Xamarin.Forms.Maps iOS PaddingXamarin.Forms.Maps iOS 填充
【发布时间】:2019-04-28 14:03:15
【问题描述】:

我无法为我的问题找到解决方案。我希望在 iOS(自定义渲染器)上为 Xamarin Forms Map(Mapkit/MKMapView)设置填充。

对于 Android,可以使用 NativeMap.SetPadding(10,200,10,10) 在自定义渲染器中进行设置,但我在 iOS 中找不到方法。

我要解决的问题是地图上的指南针出现在地图的右上角(iOS),由于我在地图顶部有自己的控件,因此无法访问指南针。

在 android 设置中,填充将指南针向下推到我的控件下方并解决了问题。

如果有任何关于如何解决 iOS 问题的建议,我将不胜感激

【问题讨论】:

    标签: ios iphone xamarin xamarin.forms


    【解决方案1】:

    MapKit.MKMapView

    您可以创建自己的 MKCompassButton 并更改其在地图上的 X/Y 位置(通过其框架)。

    var compass = MKCompassButton.FromMapView(mkMapViewInstance);
    compass.CompassVisibility = MKFeatureVisibility.Visible;
    compass.Frame = new CGRect( new CGPoint(25,25), compass.Frame.Size);
    

    回复:https://developer.apple.com/documentation/mapkit/mkcompassbutton?language=objc

    Google.Maps.MapView (iOS)

    您可以使用 GMSMapView.padding 属性在地图边缘添加填充。地图将继续填满整个容器,但文本和控件定位、地图手势和相机移动将表现得好像它被放置在更小的空间中一样。这会导致以下变化:

    myGMSMapViewInstace.Padding = new UIEdgeInsets(100.0f, 100.0f, 100.0f, 100.0f);
    

    【讨论】:

    • 不幸的是,我在 iOS 上使用的不是 GoogleMaps,而是 Mapkit。我更新了我的原始帖子,因为没有提到这个细节。还是谢谢
    • @OliverMartins 啊...好吧,MKMapView 确实允许您定义自定义插图以确定地图在视图中的位置,但是 UI 控件(即指南针)不会在插图中移动.您可以通过制作自己的MKCompassButton(iOS 11+)来控制指南针位置,从而通过 Frame origin(x/y) 将其定位在其拥有的 UIView 中,请参阅我的更新答案。
    • 非常感谢您指出这个解决方案。它可以按我的需要工作!我添加了以下内容以使其工作并隐藏原始指南针:mapView.AddSubview(compass); nativeMap.ShowsCompass = false;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多