2011-10-11 2 views
0

새로운 응용 프로그램에서 iPhone 용 (정말 멋진) WhirlyGlobe (https://code.google.com/p/whirlyglobe/) 3D 지구본 디스플레이를 사용하고 있습니다. 아래에 표시된 코드를 사용하여 특정 위치에 레이블을 추가 할 수 있습니다. 나는 이전에 추가 한 레이블을 제거하고 되돌릴 수 있기를 원합니다. 설명서 (http://whirlyglobedocs.sambweb-us-east-1.amazonaws.com/html/interface_label_layer.html#ac17e1ec72e70eec416cb2cac833f46fa)는 removeLabel 메서드를 보여 주지만 제대로 작동하지 않는 것 같습니다. 라벨을 추가 할 수는 있지만 삭제할 수는 없습니다. 모든 하위 뷰를 반복하지만이 SimpleLabel 인스턴스를 찾을 수 없습니다. 다른 사람이 라벨을 제거하는 방법을 이해하도록 도와 줄 수 있습니까? 나는 많은 행운을 찾지 못했습니다. 고맙습니다!WhirlyGlobe를 사용하여 레이블 제거

+0

확실히 배열 allLabels? 또는 locationArray? Wiki의 Google 코드 페이지에 유사한 게시물이 있습니까? – Luke

+0

레이블을 레이어에 추가하는 코드를 볼 수 있습니까? – mousebird

+0

당신의 대답은 매력처럼 작동했습니다 - 감사합니다. – PhilBot

답변

0

레이블 레이어에 단일 레이블 또는 레이블 그룹을 추가하면 SimpleIdentity가 반환됩니다. 주위 어딘가에 보관하십시오. 그런 다음 레이블 레이어에서 레이블 또는 레이블 그룹을 삭제하려면 해당 SimpleIdentity로 다시 전달합니다.

이것은 무엇입니까. WhirlyGlobe는 mofo와 같은 드로어 블 데이터를 일괄 처리합니다. Label Layer가 몇 개의 Drawables로 축소되어 사라지 자마자 SingleLabel 객체는 더 이상 존재하지 않습니다. 따라서 해당 레이블을 참조하려면 고유 ID를 유지해야합니다.

이제 라벨을 개별적으로 삭제하거나 개별적으로 모양을 변경하려면 하나씩 추가해야합니다. 하나의 레이블에서 하나의 SimpleIdentity. 그렇지 않으면 개별적으로 참조 할 수있는 방법이 없습니다.

속도를 높이려면 최대한 많이 그룹으로 묶어 두는 것이 좋습니다. 너무 복잡하다면 하나씩 추가하고 돌아와서 메모 해 두십시오. 그래서 당신이 "왜 내가 좋아할만큼 빠르지 않을까"라고 말할 때 "오우, 맞다."라고 말할 수 있습니다.

+0

감각을 발휘하고 매력처럼 작동했습니다. - 감사합니다. – PhilBot