Действительно ли возможно открыть одновременно больше затем одну выноску?
Код:
- (void)mapViewDidFinishLoadingMap:(MKMapView *)theMapView {
for (id<MKAnnotation> currentAnnotation in theMapView.annotations) {
[theMapView selectAnnotation:currentAnnotation animated:YES];
}
}
открывает только одну выноску.
С точки зрения API это не представляется возможным.
- (void) setSelected: (BOOL) selected animated: (BOOL) Анимированный селектор
в MKAnnotationView
гласит: « Вы не должны вызывать этот метод напрямую. Объект MKMapView вызывает этот метод в ответ на взаимодействие пользователя с аннотацией. ", поэтому основное сообщение состоит в том, что выбор экземпляров annotationView находится в рамках полной ответственности пользователя за выбор, и поскольку пользователь может выбрать только один из них в время, у вас не должно быть возможности выбрать несколько из них одновременно.
Даже если в документации сказано, что не следует вызывать этот метод напрямую, вы все равно пытались вызвать его с помощью setSelected: YES
на нескольких экземплярах MKAnnotationView
, чтобы посмотреть, что он дает?
ЧИСТЫЙ СПОСОБ, КОТОРЫЙ Я БЫЛ СДЕЛАТЬ: (сам не тестировал)
Если вы сделаете это таким образом, вы можете одновременно отобразить несколько выносков и получить что-то вроде:
Обратите внимание, что в MKMapView
(а не MKAnnotationView
) есть метод для программного выбора аннотации, который работает более или менее, как и следовало ожидать:
- (void)selectAnnotation:(id < MKAnnotation >)annotation animated:(BOOL)animated
Однако он автоматически отменяет выбор любые текущие аннотации одновременно, так что это не решит вашу проблему.
Как ни странно, в MKMapView
есть свойство, которое, по-видимому, содержит массив выбранных в данный момент аннотаций:
@property(nonatomic, copy) NSArray *selectedAnnotations
Но в документации по этому методу говорится:
«Назначение нового массива этому свойству. выбирает первую аннотацию в только массив. "
Просто подумал, что это может быть интересно.