2015-07-08 2 views
1

В моем проекте у меня есть AGSMapView, который отображает экран, который начинает уменьшаться, чтобы показать всю карту мира. У меня он установлен для обтекания по горизонтали, поэтому он отлично работает.ArcGIS for iOS - Как перестать видеть внешнюю карту

Однако по вертикали я вижу пустую серая сетка в верхней и нижней частях карты. Пользователь также может прокручивать карту, и эта сетка может занимать не более половины экрана при любом уровне масштабирования, пока вы находитесь на краю.

Есть ли способ привязать край карты к краю вида, в который он встроен, и не показывать эту уродливую сетку?

ответ

0

Вы должны изучить AGSMapView. maxEnveloppe является то, что вы ищете:

Ограничивает величину, на которую карта может быть приготовлена ​​таким образом, что его точка привязки (как правило, в центре), никогда не выходит за пределы этой оболочки. По умолчанию это полный конверт слоя базовой карты. Если вы задаете нестандартную величину, конверт должен иметь такую ​​же пространственную привязку, что и карта.

Кстати, вы можете легко сфокусировать сетку backgroundColor, gridLineWidth, gridLineColor и gridSize. Если вы хотите удалить эффект сетки, вам нужно установить gridLineWidth равным 0.

0

Ссылаясь на форум Click here Я нашел более близкое решение этой проблемы, которая работала для меня. Я использовал метод, предложенный «reedhr», который я копирую здесь.

- (void) removePanGesturesFromMap { 

NSMutableArray * mutableGestureRecognizers = [[NSMutableArray alloc] initWithArray:MapView.gestureRecognizers]; 

NSMutableArray *recognizersToRemove = [[NSMutableArray alloc] init]; 

for (UIGestureRecognizer * gestureRecognizer in MapView.gestureRecognizers) { 

    if (![gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]] 

     && ![gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) { 

     [recognizersToRemove addObject:gestureRecognizer]; 
    } 
} 

if (recognizersToRemove.count > 0) { 

    [mutableGestureRecognizers removeObjectsInArray:(NSArray*) recognizersToRemove]; 

    MapView.gestureRecognizers = (NSArray*)mutableGestureRecognizers; 
} 

}

Смежные вопросы