Перед 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?
Привет, спасибо, это действительное решение, и я уже реализовал его в текущей версии. Проблема в том, что мне не нравится это решение, так как пользователю нужно загружать больше данных, чем необходимо, и в 3G iPhone4 занимает слишком много времени, чтобы загрузить Карты. Я просто задавался вопросом, пропустил ли я что-то в автоматическом изменении размера. –
Я использую метод, описанный Крейгом. Никто еще не жаловался на использование данных. Было продано десятки тысяч. Вы можете изменить свой mapView в самый раз, чтобы он не был слишком большим. Также, как я это делаю, у меня есть регулярное представление, что я размер в XIB так, как я его хочу, а затем в коде я создаю MapView, его размер и добавляю как subView в представление XIB. – Fraggle