2014-11-13 2 views
0

У меня есть приложения, созданные в Xcode 5, с хорошо работающим mkMapView. Недавно появилось новое приложение в Xcode 6.1 и перетащило старые сценарии раскадровки и контроллеры представлений в новое приложение. Теперь на карте отображается пустой экран и аннотации на IOS 7, но я работал с IOS 8. Я добавил кнопку, и теперь на IOS 8 также вид карты пуст. Я удалил и воссоздал представление в раскадровке с видом карты внутри представления внутри контроллера вида, перетаскивая его из шаблонов объектов. Карта оставалась пустой. После отладки я вижу, что regionWillChangeAnimated и regionDidChangeAnimated показывают повторяющиеся события setRegion, которые устанавливают область в 0.0 координат (до и после того, как я установил правильную область).iOS MkMapView blank после перехода на Xcode 6

Наконец, удалил mkMapView из представления раскадровки и создал его с помощью кода.

//Create the map view 
_mkMapView = [[MKMapView alloc] initWithFrame:self.view.frame]; 
_mkMapView.mapType = MKMapTypeSatellite; 
_mkMapView.delegate = self; 
[self.view addSubview:_mkMapView]; 
[self.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight]; 
self.view.alpha = 1.0; 
_mkMapView.mapType = MKMapTypeStandard; 
_mkMapView.pitchEnabled = NO; 
//Set me as map delegate 
_mkMapView.delegate = self; 

Нулевые setRegion события теперь отображаются не & карта работает нормально. Есть ли что-то в раскадровке, которую я должен устанавливать? Почему созданный раскадрой просмотр вызывает повторяющиеся события setRegion с нулевыми координатами?

ответ

0

Это звучит как проблема с вашими ограничениями при создании вида карты в раскадровке. У вас не было ограничений по размеру, поэтому карта имела нулевой размер, поэтому область была нулевого размера.

Карта никогда не была «пустой»; он полностью отсутствовал. Объект с недостаточными (двусмысленными) ограничениями нельзя сделать. Это просто шанс, что это работал; к сожалению, неоднозначные ограничения не вызывают сообщение об ошибке, и иногда среда выполнения фактически разрешает двусмысленность таким образом, что вызывает представление, так что вы подумали все было в порядке, когда это было не так. В конце концов проблема была раскрыта.

+0

Спасибо - я был пойман Xcode 6 по умолчанию «Use Size Classes» на – sfr14

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