2013-07-14 1 views

답변

2

두 가지 생각 : 주석이 현재지도보기의 현재 region을 스크롤하고있다해서

  1. 그것이 대기열 즉시 다른 주석에 재사용되기에 자동으로 사용할 수 있는지, 그 가정하지 마십시오. MKMapView이 주석보기에 매달려있어 즉시 다시 사용할 수 없게 될 가능성이 큽니다. 예를 들어 사용자가지도를 스크롤하여 이전 주석보기가 다시 볼 수 있도록지도의 현재 region 근처에있는 특수 효과보기에 매달려있는 내부 최적화를 생각해 볼 수 있습니다. MKMapView은 아마도 사용자가 MKMapView을 앞뒤로 스크롤 할 때 동일한 주석보기를 만들고 다시 만들지 않으려합니다.

    예전 주석 뷰를 다시 사용할 수있게하려면 약간의 거리를 스크롤해야합니다.

  2. 이 매우 가능성이 있지만, 위의 내 관찰에 더하여, 우리는주의해야한다 당신의 viewForAnnotation 참조 오히려 메서드에 매개 변수로 전달 된 aMapView를 사용하는 것보다 일부 외부 변수 mapView. 대부분이 동일한 MKMapView을 가리키는 인스턴스 변수이며 모든 것이 좋지만 변수가 nil 인 경우 dequeueReusableAnnotationViewWithIdentifier은 항상 nil을 반환합니다. viewForAnnotation을 변경하여 aMapView 매개 변수를 사용하여이 모호성을 제거 할 수 있습니다.

관련 문제