После 2 часов поиска с помощью Google я не мог найти ответ, таким образом, это - мой последний выстрел.
Я хотел бы использовать пользовательскую аннотацию для пользователя текущее местоположение на mkmapview. Но я также хочу иметь синий круг точности вокруг этого.
Это может быть сделано?
В противном случае я могу добавить выноску к синей точке по умолчанию с кругом?
Причина, что мне нужно это, состоит в том, потому что на моем приложении, текущая точка местоположения часто исчезает в соответствии с другими аннотациями. Так же вот почему я использую фиолетовый контакт с выноской как текущее местоположение.
Вот мой код для аннотации:
if ([annotation isKindOfClass:MKUserLocation.class])
{
MKPinAnnotationView *userAnnotationView = (MKPinAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:@"UserLocation"];
if (userAnnotationView == nil) {
userAnnotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"UserLocation"]autorelease];
}
else
userAnnotationView.annotation = annotation;
userAnnotationView.enabled = YES;
userAnnotationView.animatesDrop = NO;
userAnnotationView.pinColor = MKPinAnnotationColorPurple;
userAnnotationView.canShowCallout = YES;
[self performSelector:@selector(openCallout:) withObject:annotation afterDelay:0.01];
return userAnnotationView;
}
Спасибо за любого советуют. С наилучшими пожеланиями, христианин
Хорошо, в итоге я удалил настраиваемое уведомление, но добавил автоматически всплывающий вызов. Примерно так:
mapView.showsUserLocation=TRUE;
mapView.userLocation.title = NSLocalizedString (@"Here am I",@"Here am I" );
[self performSelector:@selector(openCallout:) withObject:mapView.userLocation afterDelay:3.0];
и:
- (void)openCallout:(id<MKAnnotation>)annotation {
[mapView selectAnnotation:annotation animated:YES];
}
Без задержки вызов не появится.