public void GenView(MKClusterAnnotation cluster)
        {
            AnnotationViewSize annotationSize = MapSettings.AnnotationSize;

            if (cluster != null)
            {
                var renderer = new UIGraphicsImageRenderer(new CGSize(annotationSize.Width,
                                                                      annotationSize.Height));
                var count = cluster.MemberAnnotations.Length;

                Image = renderer.CreateImage((context) => {
                    //circle
                    UIColor.FromRGB(230, 141, 119).SetFill();
                    UIBezierPath.FromOval(new CGRect(0,
                                                     0,
                                                     annotationSize.Width,
                                                     annotationSize.Height)).Fill();

                    //text
                    var attributes = new UIStringAttributes()
                    {
                        ForegroundColor = UIColor.Black,
                        Font            = UIFont.BoldSystemFontOfSize(20)
                    };
                    var text = new NSString($"{count}");
                    var size = text.GetSizeUsingAttributes(attributes);
                    var rect = new CGRect(20 - size.Width / 2, 20 - size.Height / 2, size.Width, size.Height);
                    text.DrawString(rect, attributes);
                });
            }
        }
示例#2
0
 private void SetViewMode(AnnotationViewSize viewSize)
 {
     if (viewSize == annotationViewSize)
     {
         return;
     }
     UpdateCardForSize(viewSize);
     annotationViewSize = viewSize;
 }
示例#3
0
 private void UpdateCardForSize(AnnotationViewSize viewSize)
 {
     cardMeshTransition.TransitionToViewSize(annotationData, viewSize);
     cardCanvasTransition.TransitionToViewSize(annotationData, viewSize);
 }
示例#4
0
 public abstract void TransitionToViewSize(AnnotationData data, AnnotationViewSize nextAnnotationViewSize);