Так что я пытаюсь повторить следующий сценарий (полупрозрачные просмотры аннотаций):Как добавить пользовательскую прозрачную MKnnotation в MKMapView?
И я безуспешно пытался следующие реализации:
1- Создание пользовательского образа с 30% непрозрачности и добавление на карту ---> Результат: Изображение остается непрозрачным.
Код:
-(id)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self) {
LLAnnotation *myA = (LLAnnotation*) annotation;
self.accessibilityLabel = myA.title;
self.annotation = myA;
self.enabled = YES;
self.canShowCallout = YES;
self.centerOffset = CGPointMake(5,-10);
self.backgroundColor = [UIColor yellowColor];
self.image = [UIImage imageNamed:@"circle"];
}
return self;
} `
А затем добавить его в - (MKAnnotationView *) MapView: (MKMapView *) MapView viewForAnnotation: (ID) annotation_
2- Добавление подуровня в AnnotationView и его очистка ---> Результат: не отображается аннотация.
Код:
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation_
{
if (annotation_ == mapView.userLocation) return nil;
MKAnnotationView *m = [[MKAnnotationView alloc] initWithAnnotation:annotation_ reuseIdentifier:@"default"];
// m.backgroundColor = [UIColor clearColor];
CALayer *layer = [[CALayer alloc]init];
layer.frame = m.frame;
layer.backgroundColor = [UIColor lightGreenColor].CGColor;
[m.layer addSublayer:layer];
m.layer.cornerRadius = m.frame.size.width/2;
m.layer.borderWidth = 2;
m.layer.masksToBounds = YES;
return m;
}
Я думал, что добавление MKOverlays поверх аннотаций может быть обходной путь, но он не должен быть путь я считаю.
Есть ли у кого-нибудь другие предложения о том, как реализовать это?
Ты мужчина @ Капай, спасибо тебе большое! – jonypz