Как узнать, когда MKMapView и видимый MKAnnotationView закончили рисование? - PullRequest
1 голос
/ 06 ноября 2010

Я отображаю MKMapView с MKAnnotations, некоторые из которых выбраны, и показываю их аннотации.Я пытаюсь получить изображение отображаемой карты и аннотации, используя -renderInContext.

90% времени, когда карта, MKPinAnnotationView и выбранные аннотации правильно фиксируются.В остальные 10% случаев в изображении чего-то не хватает, обычно MKPinAnnotationViews или их аннотаций, если они выбраны.

Я добавил код для работы с самой картой, загружая ее данные карты.

Но я не смог отследить что-то, что указывало бы на то, что все видимые MKPinAnnotationView были нарисованы, и если выбраны их аннотации, отображаемые ??

, ближайший совет, с которым я столкнулся, это addObserver, хотя я не понял, что можно наблюдать, что скажет мне, когда весь рисунок будет сделан.

Мысли?

Ответы [ 2 ]

1 голос
/ 08 ноября 2010

хорошо, я идиот ... Я наконец-то нашел решение проблемы.В моей подпрограмме viewForAnnotation в протоколе MKMapView Delegate я неправильно устанавливал значения для повторно используемых MKPinAnnotationView.Поэтому в некоторых случаях я повторно использовал представление, для которого .canShowCallout было установлено значение YES, а иногда я использовал повторно представление, в котором для .canShowCallout было установлено значение NO.

. <</p>

0 голосов
/ 06 ноября 2010

Попробуйте использовать метод MKMapViewDelegate didAddAnnotationViews.

Если в этом методе чертеж все еще не готов к вашим требованиям, вы можете вызвать метод захвата с помощью executeSelector: withObject: afterDelay:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...