2015-01-09 4 views
0

Я применил виджет Today для своего приложения.iOS Today Extension MapView работает только с симулятором Xcode

mkmapView отлично работает в двух ситуации: 1. Xcode симулятор 2. запустить устройство с Xcode

но MAPview только показать цвет фона и местоположения пользователя маркер, когда я бегу виджет на самом устройстве.

Кто-нибудь знает почему? Как его решить?

thx!

ответ

2

Прямо из Apple documentation

Убедитесь, что точка расширения Сегодня подходит для функциональности вы хотите предоставить. Лучшие виджеты дают пользователям быстрые обновления или позволяют выполнять очень простые задачи. Если вы хотите создать расширение приложения, которое позволяет выполнять многопроцессорную задачу или помогает пользователям выполнять длительную задачу, например загрузку или загрузку контента, точка расширения Today не является правильным выбором.

Требуется постоянное изменение при пролете или масштабировании, а делегаты вызываются на уважаемом манере.

Так что это одна из причин, по которой вы не видите никаких обновлений при добавлении карты в виджет сегодня.

+0

потому что я видел приложение, имеющее функцию карты https://itunes.apple.com/tw/app/pinow/id937720782?mt=8 – YenCheng

+0

Это может быть снятый снимок от mapView. Не может отображаться не вся карта. «MKMapView» предоставляет возможность сделать снимок вашей карты из определенных точек. – Kampai

+0

Вижу, спасибо за ваш ответ! – YenCheng

1

Вы можете использовать MKMapSnapshotter, чтобы сделать снимок карты, но у меня все еще была проблема с памятью и автозапуском (почему!?!?), Используя это в сегодняшнем расширении. Наше решение «не очень-очень-очень-очень хорошо» - использовать механизм выбора фонового местоположения нашего приложения и shared container для хранения NSData из MKMapSnapshotter. Затем в сегодняшнем расширении, делая как можно меньше работы, просто считывая NSData из контейнера и отображая его с помощью UIImageView.

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