Как остановить мерцание загрузки при добавлении большого количества MKOverlays на карту
У меня есть приложение, которое отображает велосипедные дорожки в Великобритании на карте:
Я обнаружил, что по соображениям производительности мне пришлось разделить выборку данных карты на листы. Я выбираю плитку за раз, используя NSOperationQueue, и отображаю ее на карте. Это значительно улучшило скорость отклика, однако добавило еще одну проблему, когда карта иногда мерцает каждый раз, когда к ней добавляется набор наложений.
- Пример этого может быть замечен в записи экрана, которую я сделал на Симуляторе:
- Другой пример, использующий несколько случайных линий вместо моих велосипедных дорожек.
Я не делаю ничего необычного в коде.
[self.mapView addOverlays:overlays]; // On the main thread
...
if ([overlay isKindOfClass:[RSPathOverlay class]])
{
RSPathOverlay* pathOverlay = (RSPathOverlay*) overlay;
MKPolylineView* view = [[MKPolylineView alloc] initWithPolyline:overlay];
view.strokeColor = [UIColor colorWithRed:0.3 green:0.3 blue:1.0 alpha:1.0];
view.lineWidth = 4.3;
return view;
}
- Что иногда вызывает мерцание?
- Как я могу уменьшить / убрать мерцание?
Я задавал этот вопрос на форумах разработчиков, хотя были ответы с похожими проблемами, но хорошего решения не было найдено.
1 ответ
Я заполнил отчет об ошибке с этой проблемой. Это происходит только в IOS 6, а не в IOS 5.