2012-10-08 4 views
0

MKMapView에서 애니메이션 가능한 주석 뷰를 만들고 싶지만 애니메이션을 부드럽게하고 싶습니다 (this과 같지 않습니다). CoreAnimation이 최고일지도 모른다고 생각합니다. 그렇게하는 방법.CALayer를 애니메이션 가능한 주석의 MKAnnotation 대리자로 사용하기

현재 CALayer의 하위 클래스를 MKAnnotation 대리자로 만들고 CoreAnimation을 사용하여 좌표 속성에 애니메이션을 적용하려고합니다. 이것을 MKAnnotationView의 레이어로 사용할 수도 있습니다.

그러나 이것은 CoreAnimation에 대한 이해의 한계입니다. 결코 레이어의 계층을 변경하지 않았거나 내 Views 레이어에 대한 일부 3D 변형보다 더 멀리갔습니다.

이 문제에 대한 좋은 접근 방법이라고 생각하십니까?

도움을주기 위해 공유 할 수있는 코드가 있습니까?

미리 감사드립니다.

편집 : NSKA의 하위 클래스 인 MKAnnotation을 위임하는 것과 같은 방법을 사용하는 것이 더 효과적이라고 생각한다면 알려 주시기 바랍니다. 나를위한 목표는 부드럽게 좌표를 움직이기위한 것이고 나는 그것을위한 QuartzCore 프레임 워크를 생각했다.

답변

0

레이어는 다른 레이어 또는 뷰와 연관됩니다.

MKAnnotation 개체는 NSObject에서 직접 내린 데이터 컨테이너 개체입니다. 레이어를 "MKAnnotation 대리자"로 만들 수 없습니다.

MKAnnotationView의 사용자 정의 하위 클래스를 설정하고 레이어 및 애니메이션을 사용자 정의 하위 클래스에 추가하는 것입니다. 지도보기는 mapView : viewForAnnotation : map보기 대리자 메소드에 대한 응답으로 사용자 정의 주석보기 객체를 만들고 반환합니다.

본인은 직접 시도하지 않았지만 제대로 작동합니다. 그러나지도가 비례 할 때 주석보기의 크기가 조정되지 않으므로 고정 크기로 주석보기를 작성하거나지도 축척이 변경되면 주석보기를 조정하는 코드를 작성하고 영리하게 작성해야합니다.

+0

확인. 나는 그 질문을 편집했다. MKAnnotation의 일부를 데이터 객체로 가져 왔습니다. 그런데 어떻게 좌표를 움직이는 방법에 접근하겠습니까? 나는 그것을 부드럽게 할 필요가있어서, CoreAnimation을 생각해 보았습니다. CALayer로 안내하게되었습니다. –

관련 문제