Agregar text en un marcador personalizado en el map de Google para ios

Estoy tratando de poner marcador con Textview. ¿Hay alguna posibilidad de agregar text sobre marcador en google map en ios? Me gusta esto

Debe hacer una vista, donde debe crear una imageView (con su image de marcador) y Etiqueta (con su text) y tomar una captura de pantalla de esa vista, y establecer como icono en su GMSMarker. Algo como esto:

- (void)foo { GMSMarker *marker = [GMSMarker new]; UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,60,60)]; UIImageView *pinImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myPin"]]; UILabel *label = [UILabel new]; label.text = @"1"; //label.font = ...; [label sizeToFit]; [view addSubview:pinImageView]; [view addSubview:label]; //ie customize view to get what you need UIImage *markerIcon = [self imageFromView:view]; marker.icon = markerIcon; marker.map = self.mapView; } - (UIImage *)imageFromView:(UIView *) view { if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, [[UIScreen mainScreen] scale]); } else { UIGraphicsBeginImageContext(view.frame.size); } [view.layer renderInContext: UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; } 

introduzca la descripción de la imagen aquí

Si desea mostrar algo como esto, simplemente siga estos pasos. Es muy simple, puedes usar este método.

 -(UIImage *)createImage:(NSUInteger)count{ //count is the integer that has to be shown on the marker UIColor *color = [UIColor networkingColor]; // select needed color NSString *string = [NSString stringWithFormat:@"%lu",(unsigned long)count]; // the string to colorize NSDictionary *attrs = @{ NSForegroundColorAttributeName : color }; NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:string attributes:attrs]; // add Font according to your need UIImage *image = [UIImage imageNamed:@"ic_marker_orange"]; // The image on which text has to be added UIGraphicsBeginImageContext(image.size); [image drawInRect:CGRectMake(0,0,image.size.width,image.size.height)]; CGRect rect = CGRectMake(20,5, image.size.width, image.size.height);// change the frame of your text from here [[UIColor whiteColor] set]; [attrStr drawInRect:rect]; UIImage *markerImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return markerImage;} 

y cuando configura marcador en el map, simplemente establezca

  GMSMarker *marker = [[GMSMarker alloc] init]; marker.icon = [self createImage:[model.strFriendCount integerValue]]; // pass any integer to the method. 

Aquí está la versión rápida de la respuesta de Kunal :

 func createImage(_ count: Int) -> UIImage { //count is the integer that has to be shown on the marker let color = UIColor.networking // select needed color let string = "\(UInt(count))" // the string to colorize let attrs = [NSForegroundColorAttributeName: color] let attrStr = NSAttributedString(string: string, attributes: attrs) // add Font according to your need let image = UIImage(named: "ic_marker_orange")! // The image on which text has to be added UIGraphicsBeginImageContext(image.size) image.draw(in: CGRect(x: CGFloat(0), y: CGFloat(0), width: CGFloat(image.size.width), height: CGFloat(image.size.height))) let rect = CGRect(x: CGFloat(20), y: CGFloat(5), width: CGFloat(image.size.width), height: CGFloat(image.size.height)) attrStr.draw(in: rect) let markerImage = UIGraphicsGetImageFromCurrentImageContext()! UIGraphicsEndImageContext() return markerImage } 

Espero que esto ayude a alguien más.