MKOverlayView drawMapRect:zoomScale:inContext: когда он вызывается?

Я проверяю пример хлебных крошек:

http://developer.apple.com/library/ios/#samplecode/Breadcrumb/Introduction/Intro.html

На симуляторе iphone, если я имитирую где-то вне исходного вида США из MKMapView, drawMapRect:zoomScale:inContext: не вызывается, когда он должен что-то рисовать.

Это почему? Когда вызывается метод? Что я могу сделать, чтобы заставить его работать?


person huggie    schedule 10.04.2012    source источник


Ответы (2)


Это связано с установленным ограничением на отображение маршрутов в районе четверти мирового размера по высоте и ширине вокруг текущего местоположения.

Проверьте этот код в CrumbPath.m

// bite off up to 1/4 of the world to draw into.
    MKMapPoint origin = points[0];
    origin.x -= MKMapSizeWorld.width / 8.0;
    origin.y -= MKMapSizeWorld.height / 8.0;
    MKMapSize size = MKMapSizeWorld;
    size.width /= 4.0;
    size.height /= 4.0;
    boundingMapRect = (MKMapRect) { origin, size };
    MKMapRect worldRect = MKMapRectMake(0, 0, MKMapSizeWorld.width, MKMapSizeWorld.height);
    boundingMapRect = MKMapRectIntersection(boundingMapRect, worldRect);
person patternoia    schedule 10.09.2012

Какую версию xCode вы используете?

Вот требования к приложению:

ТРЕБОВАНИЯ К СТРОИТЕЛЬСТВУ:

iOS 5.0 SDK или новее

ТРЕБОВАНИЯ К РАБОТЕ:

iOS 4.0 или новее

person Scott McConnell    schedule 07.05.2012
comment
Х-код 4.3.2. Я не знаю, почему иногда это работает, иногда нет. - person huggie; 09.05.2012
comment
В моем собственном приложении, которое реализует ту же логику, почему-то работает нормально. - person huggie; 09.05.2012