Я разработал игру некоторое время назад. Игра состоит из карты испания, и вы должны угадать, где находится город на этой карте (у меня также есть версии EEUU и china) Я разработал их все с базой iOS 5 и с помощью iOS 5 sdk.
Затем, 3 недели назад, я обновил испанскую игру, и мне пришлось использовать sdk iOS 6, все кажется прекрасным на симуляторе и на моем ipad 2 (iOS 5.0.1) и iPod touch (iOS 5.1), и выпустил обновление.
Но когда люди начали загружать или обновлять новую версию, некоторые из них связались со мной, потому что карта не подходила к экрану.
Это скриншот, как я вижу игру на своих устройствах и симуляторе. (iPad 5.0.1 и симулятор с 5.0, 6.0 и 6.1, как в сетчатке, так и в обычном режиме)
Это скриншот, как это показано на других устройствах. (iPad 3 с iOS 6.0 и iPad 2 с iOS 6.0.1)
Это мой код для iPad (насколько я знаю, на iPhone работает как ожидалось)
CLLocationCoordinate2D centerLocation;
MKCoordinateRegion region;
centerLocation.latitude = 39.016740;
centerLocation.longitude = -5.93504;
region = MKCoordinateRegionMakeWithDistance(centerLocation, 0, 800000);
[map setRegion:region];
сначала я думал, что это проблема сетчатки, потому что первый человек, который связался с моим, использовал iPad 3, я исправил карту для сетчатки iPad в понедельник, но вчера я получил то же сообщение от другого пользователя с iPad 2.
Итак, я что-то делаю неправильно? setRegion несовместим между версиями iOS? как я могу проверить свой код, если он отлично работает на симуляторах?
Может кто-нибудь попробовать мой код на реальных устройствах и сказать мне, получают ли они карту, как первую или вторую?
EDIT1: Окончательные мысли после принятия ответа: Это не проблема между версиями iOS, похоже, проблема синхронизации, регион отличается, если вы установили его перед представлением или после него. Это происходит как в iOS 5, так и в iOS 6.
Единственное различие между iOS 5 и iOS 6 происходит на реальных устройствах, если вы установите область перед отображением карты, она остается такой, какая есть, но на iOS 6 на симуляторе она останется такой, какая есть, но на реальное устройство, оно будет отображаться как область, заданная при появлении представления.
Итак, решение устанавливает область на viewDidAppear
, и она будет отображаться точно так же на iOS 5 и iOS 6, на симуляторах и реальных устройствах.
ИЗМЕНИТЬ 2:
кажется, что 0 в регионе тоже имеет какое-то отношение к проблеме, если я использую region = MKCoordinateRegionMakeWithDistance(centerLocation, 800000, 800000);
, область остается прежней до и после загрузки вида, по крайней мере, на симуляторе.
Если я использую region = MKCoordinateRegionMakeWithDistance(centerLocation, 0, 800000);
, регион отличается, если я использую его перед загрузкой представления и появляется "увеличенный", когда я его использую позже.
Я подожду, пока не получу свою сетчатку iPad с iOS6, чтобы продолжить тестирование этой проблемы.