MKMapKit скрывает карты Apple

Нужна помощь с Apple MapKit. Я использую карты OSM с Tile Overlay, и это работает очень хорошо. Но есть небольшая проблема, которую я хочу исправить. Я хочу скрыть карты Apple, потому что они отображаются под картой OSM, и когда карта OSM загружается, карты Apple видны, и это выглядит странно.

Также устройство рендерит две карты, что не очень хорошо... знаете ли.

В руководстве, которое я использовал для добавления карт OSM, был этот код:

if ( [map.subviews count] && [((UIView *)[map.subviews objectAtIndex:0]).subviews count] )
    ((UIView *)[((UIView *)[map.subviews objectAtIndex:0]).subviews objectAtIndex:0]).alpha = 0;

Во-первых, этот код у меня не работает. И в любом случае установка альфа на ноль не равнозначна отсутствию рендеринга. Но если нет возможности остановить рендеринг карт Apple, я могу использовать альфу.

Так что нужна помощь с этим материалом, нужно скрыть карту яблока.

Большое спасибо за ваше время.

Обновлять:

Я попытался зарегистрировать структуру MKMapKit. Вот:

- MKMapView
- - UIView
- - - MKBasicMapView
- - - - _MKMapLayerHostingView
- - - MKScrollContainerView
- - - - MKOverlayContainerView
- - - MKNewAnnotationContainerView
- - MKAttributionLabel

Затем я попробовал эту вещь:

UIView * ll = [[[[[[map subviews] objectAtIndex: 0] subviews] objectAtIndex: 0] subviews] objectAtIndex: 0];
[ll removeFromSuperview];

Это сработало, но скрывает карту с наложениями. Понятия не имею, как скрыть только карту... Как мы видим, есть слои для оверлеев, какого черта... о... помогите, пожалуйста. знак равно


person KaronatoR    schedule 20.03.2014    source источник
comment
Почему вы используете OSM, а не только MapKit? А зачем вам MapKit, если вы используете OSM?   -  person Thomas Deniau    schedule 20.03.2014
comment
У вас есть ссылка на это руководство с этим кодом? Обычно действительно плохая идея полагаться на внутреннюю, недокументированную иерархию представлений (особенно с MKMapView).   -  person    schedule 20.03.2014
comment
2Анна: Я с тобой согласна, но мне нужно это сделать =( Я не хочу менять мапкит на что-то другое... это слишком больно.   -  person KaronatoR    schedule 20.03.2014
comment
2Thomas: Потому что я не хочу писать собственный мапкит или использовать сторонний мапкит.   -  person KaronatoR    schedule 20.03.2014
comment
@KaronatoR, запись 2xyz не уведомляет пользователя xyz - вместо этого напишите @xyz.   -  person    schedule 20.03.2014


Ответы (1)


В iOS 7 и более поздних версиях вы можете посмотреть на http://mapbox.com/mbxmapkit. Но, несмотря ни на что, вы не должны связываться с иерархией подвидов MKMapView.

person incanus    schedule 20.03.2014