Пользовательский MKAnnotationView с рамкой, значком и изображением

Я искал аналогичное решение о том, как создать пользовательский MKAnnotationView, подобный этому.

введите описание изображения здесь

Я подклассифицировал MKAnnotation, и я смог добавить изображение под именем F.png F.png – это изображение кадра, как показано на картинке. я хочу добавить внутренний образ. (цветной синий на картинке, которую я рисую)

- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) return nil; static NSString* AnnotationIdentifier = @"AnnotationIdentifier"; MKAnnotationView *annotationView = [mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationIdentifier]; if(annotationView) return annotationView; else { MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier]; annotationView.canShowCallout = YES; annotationView.image = [UIImage imageNamed:[NSString stringWithFormat:@"F.png"]]; UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; [rightButton addTarget:self action:@selector(writeSomething:) forControlEvents:UIControlEventTouchUpInside]; [rightButton setTitle:annotation.title forState:UIControlStateNormal]; annotationView.rightCalloutAccessoryView = rightButton; annotationView.canShowCallout = YES; annotationView.draggable = NO; return annotationView; } return nil; } 

2 Solutions collect form web for “Пользовательский MKAnnotationView с рамкой, значком и изображением”

здесь в вашем коде

 else { MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier]; annotationView.canShowCallout = YES; //change here annotationView.image = [UIImage imageNamed:[NSString stringWithFormat:@"F.png"]]; UIImage *frame = [UIImage imageNamed:[NSString stringWithFormat:@"F.png"]; UIImage *image = theImageInFrameInner; UIGraphicsBeginImageContext(CGSizeMake(pin.size.width, pin.size.height)); [frame drawInRect:CGRectMake(0, 0, frame.size.width, frame.size.height)]; [image drawInRect:CGRectMake(2, 2, 60, 60)]; // the frame your inner image //maybe you should draw the left bottom icon here, //then set back the new image, done annotationView.image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; [rightButton addTarget:self action:@selector(writeSomething:) forControlEvents:UIControlEventTouchUpInside]; [rightButton setTitle:annotation.title forState:UIControlStateNormal]; annotationView.rightCalloutAccessoryView = rightButton; annotationView.canShowCallout = YES; annotationView.draggable = NO; return annotationView; } 
 - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { static NSString *AnnotationViewID = @"annotationViewID"; MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID]; if (annotationView == nil) { annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID]; } UIImage *imgPinBorder = [UIImage imageNamed:@"pinBorder.png"]; UIImageView *imageViewPinBorder = [[UIImageView alloc] initWithImage:imgPinBorder]; imageViewPinBorder.center = annotationView.center; [annotationView addSubview:imageViewPinBorder]; UIImage *img = [UIImage imageNamed:@"myIcon.png"]; UIImageView *imageView = [[UIImageView alloc] initWithImage:img]; imageView.center = annotationView.center; [annotationView addSubview:imageView]; annotationView.annotation = annotation; UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure]; [rightButton addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside]; [rightButton setTitle:annotation.title forState:UIControlStateNormal]; annotationView.rightCalloutAccessoryView = rightButton; annotationView.canShowCallout = YES; annotationView.draggable = NO; return annotationView; } 
  • Просмотр продукта в App Store, не работающий на IOS 5, как проверить?
  • Как я могу создать «гиперссылку» с помощью Swift?
  • NSOperationQueue против GCD
  • Как анимировать вместе с анимацией представления / увольнения UISearchController?
  • iOS Переключиться на другой ViewController / View после входа в LoginView
  • Swift Cocoa Touch пользовательская ячейка, возвращающая нуль для IBOutlets
  • Как добавить UIToolbar в NavigationController на раскадровке?
  • Полупрозрачная граница UIButton
  • СпутниИЕ
  • Каллиграфический рисунок IOS Coregraphics
  • Рекомендации по обработке изменений в UINavigationItem контроллеров дочерних представлений в контроллере контейнера?
  • Interesting Posts

    iOS Facebook SDK: FBSDKGraphRequest не получает электронную почту, несмотря на разрешение

    В GCD есть ли способ определить, является ли текущая очередь параллельной или нет?

    UIActivityIndicatorView показывается только после загрузки

    Swift Generics: функция с T.Type в качестве параметра возвращает дополнительный T

    Невозможно протестировать iPhoneSimulator с помощью Xamarin Studio

    Core Data, iCloud & App приостановлено с заблокированными файлами системы

    iOS – APNS с дистрибутивом InHouse

    Как изменить фоновый цвет UICollectiveViewCell на основе строки?

    iPhone: Как я могу создать собственный TabBar?

    На iOS, каковы различия между полями, кросс-вставками, вставками содержимого, выравниванием прямоугольников, макетами макета …?

    Поток программы идет не так

    iOS 6 Сохранение / восстановление состояния приложения

    Странный сбой при использовании нового эффекта PageCurl при чтении PDF с помощью MonoTouch и iOS 5.0

    как установить цвет фона представления с помощью точного гекса с помощью интерфейса?

    Использование инструментов для работы через предупреждения о низкой памяти

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.