gpt4 book ai didi

c# - 如何在 iOS 上访问用户的 MKAnnotationView

转载 作者:行者123 更新时间:2023-11-30 10:52:34 25 4
gpt4 key购买 nike

根据this在教程中,我向我的 Xamarin.Forms iOS 项目添加了 CustomMap 的渲染器。我想用用户当前位置的引脚(即白色/蓝色圆圈)覆盖基本的Pin。所以我添加了一个类CustomMapRenderer,它重写了GetViewForAnnotation方法,如下

protected override MKAnnotationView GetViewForAnnotation(MKMapView mapView, IMKAnnotation annotation)
{
MKAnnotationView annotationView = null;

if (annotation is MKUserLocation)
return null;

var customPin = getTrackPin(annotation as MKPointAnnotation);
if (customPin == null)
{
throw new Exception("Custom pin not found");
}

annotationView = mapView.DequeueReusableAnnotation(customPin.Id.ToString());
if (annotationView == null)
{
annotationView = new TrackMKAnnotationView(annotation, customPin.Id.ToString());
annotationView.Image = UIImage.FromFile("pin.png");
annotationView.CalloutOffset = new CGPoint(0, 0);
annotationView.LeftCalloutAccessoryView = new UIImageView(UIImage.FromFile("monkey.png"));
annotationView.RightCalloutAccessoryView = UIButton.FromType(UIButtonType.DetailDisclosure);
((TrackMKAnnotationView)annotationView).Id = customPin.Id.ToString();
((TrackMKAnnotationView)annotationView).Url = customPin.url;
}
annotationView.CanShowCallout = true;

return annotationView;
}

但是,而不是这样做

annotationView.Image = UIImage.FromFile("pin.png");

我想获取代表用户当前位置的 pin 的 UIImage,如下所示(伪代码):

annotationView.Image = UIImage.UserPin;

有办法实现这一点吗?

最佳答案

当检查注解是否为 MKUserLocation 时,删除返回 null。

不要返回 null,而是配置您的注释

if annotation is MKUserLocation {
let pin = mapView.view(for: annotation) as? MKPinAnnotationView ?? MKPinAnnotationView(annotation: annotation, reuseIdentifier: nil)
pin.image = UIImage(named: "imageName")
return pin // 1

}

1.返回您的密码

关于c# - 如何在 iOS 上访问用户的 MKAnnotationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54305890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com