Я получаю довольно разочарование в связи с ограничениями MKMapKit. Моя текущая проблема связана с г-упорядоченностью вида аннотаций, в частности, как он относится к прикосновениям. Если вы принимаете по умолчанию Z-Орден MapKit дает вам:
- Порядок появляется случайным образом. Г порядка не имеет отношения к порядку были добавлены аннотации.
- Если один аннотация заканчивается на вершине другой, прикоснувшись к верхней аннотации обычно вызывает выноски для нижней аннотации. Похоже, хит детектирование даже не уважает порядок отрисовки. Что с этим делать?
Я попытался решить # 1, используя что-то подобное следующему код найденного в Интернете (который был разработан, чтобы дать некоторый контроль над г-го порядка)
- (Недействительными) MAPview: (MKMapView *) MAPview didAddAnnotationViews: (NSArray *) вид {
для (MKAnnotationView * annView в представлениях) {
TopBottomAnnotation * апп = (TopBottomAnnotation *) [annView аннотаций];
если ([апп сверху]) {
[[AnnView SuperView] bringSubviewToFront: annView];
} Еще {
[[AnnView SuperView] sendSubviewToBack: annView];
}
}
}
Запуск через представление аннотаций, переданное MAPview: didAddAnnotationViews: и регулируя их Z-порядок, похоже, исправить # 1. Проблема заключается в том, что сейчас взгляды выноски больше не всегда сверху взгляды аннотаций. MapKit, кажется, становится очень смущен о слоях (выноски должны быть нарисованы в слое над всеми видами аннотаций). Я даже могу понять, как это путается, так как все MKAnnotationViews вы получаете имеют одинаковую SuperView (частный класс MKOverlayView). Вы думаете, что любой разумный дизайн будет рисовать выноски об этом виде наложения.
Кто-нибудь решил # 1 или # 2 успешно?













