2012-10-03 10 views
1

Перед iOS6 я использовал для поворота MKMapView на основе GPS-направления пользователя (NOT HEADING) с использованием подсмотра MKMapView. Все работало отлично, я инициализируюсь мнение следующим образом:MKMapView вращение iOS6 масштабирование

mapView = [[MKMapView alloc] init];  
mapView.delegate = self; 
mapView.clipsToBounds = FALSE; 
mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;   
self.view = mapView; 

И при повороте я сделал следующее:

UIView *innerMap = [mapView.subviews objectAtIndex:0]; 
if([innerMap isKindOfClass:[UIView class]]) 
{ 
    innerMap.transform = CGAffineTransformMakeRotation(degreesToRadians(-lastDegrees)); 
} 

Как я уже говорил, все работало отлично. Хорошая вещь была тогда, когда карта повернулась, она автоматически масштабировалась по всему кадру зрения и заполняла черные углы, которые создавал поворот.

Однако новые карты iOS6 не масштабируются и не заполняют углы! Поэтому, когда он вращается, половина обзора отсутствует, а другая половина - черная (фоновый цвет). Что я пробовал?

  • Попытка все различные подвидов нового MKMapview (также установить их resizingmask к тому же значению, что и MapView)
  • попытались установить contentmode к scaleToFill (также в подпредставлений)
  • попытался установить autoresizes подвидов к истинным
  • пытались сбросить кадр после поворота

к сожалению, все мои попытки не имеют никакого эффекта. Каким-то образом GoogleMaps масштабируется и заполняет черные углы автоматически, а карты iOS - нет. Итак, я что-то пропустил здесь, какое-то потрясающее свойство UIView, которое я забываю, или это просто невозможно с новыми картами iOS6?

ответ

1

Как сделать MapView намного большим, чем размер экрана, поэтому, когда он вращается, вы не можете его увидеть?

+0

Привет, спасибо, это действительное решение, и я уже реализовал его в текущей версии. Проблема в том, что мне не нравится это решение, так как пользователю нужно загружать больше данных, чем необходимо, и в 3G iPhone4 занимает слишком много времени, чтобы загрузить Карты. Я просто задавался вопросом, пропустил ли я что-то в автоматическом изменении размера. –

+0

Я использую метод, описанный Крейгом. Никто еще не жаловался на использование данных. Было продано десятки тысяч. Вы можете изменить свой mapView в самый раз, чтобы он не был слишком большим. Также, как я это делаю, у меня есть регулярное представление, что я размер в XIB так, как я его хочу, а затем в коде я создаю MapView, его размер и добавляю как subView в представление XIB. – Fraggle