2009-12-18 2 views
1

MKMapView에서 처음으로 핀을 선택한 직후에 UCNnotationView에 UILabel을 leftCalloutAccessoryView로 추가하려고합니다. 라벨을 추가하는 것은 문제가되지 않습니다. 콜 아웃이 선택되고 열리 며, 이것이 콜 아웃보기에 라벨을 추가 할 때입니다. 콜 아웃은 슬라이드 애니메이션과 함께 왼쪽으로 자동 확장되며 두 줄을 포함하는 새 레이블이 표시됩니다. 불행히도 핀에 대한 특정 정보가 필요하기 때문에 핀을 선택한 후에 레이블을 추가해야합니다.MKAnnotationView의 액세서리보기에있는 흐릿한 UILabel 텍스트

이제 문제는이 라벨의 텍스트가 올바르게 렌더링되지 않는 것처럼 "흐릿한"것입니다. 설명 선을 선택 취소하고 다시 선택하면 모든 것이 올바르게 그려집니다. 핀의 선택에 대한 위임 방법 없기 때문에, MKPinAnnotationView 작성 중에
내가 뷰의 "선택"속성에 대한 관찰자 등록 :

는 I 라벨을 추가하는 방식이다. 뷰에서 핀을 선택하면 옵저버 메서드가 실행되고 뷰에 텍스트 레이블이 추가됩니다. (UILabel을 2 줄, 선명한 배경색과 굵은 흰색 시스템 글꼴로 만들고, leftCalloutAccessoryView를 설정하고, 레이블을 놓습니다). setNeedsDisplay, setNeedsLayout 및 다른 여러 가지 작업을 시도했지만, 핀이 두 번째로 선택 될 때까지 텍스트가 여전히 흐릿하게 표시됩니다.

어떻게하면이 라벨을 제대로 보이지 않게 할 수 있습니까?

미리 감사드립니다.

답변

3

레이블이 픽셀 경계에 있습니까? 프로그래밍 방식으로 레이블 프레임을 계산할 때 흐릿한 것을 보았고 계산 결과가 원점에 대해 정수가 아닌 값을 반환 할 수 있다는 점을 고려하지 않았습니다.

+0

내 생각에 ... 을 사용하여 레이블을 만듭니다. UILabel * label = [[UILabel alloc] initWithFrame : CGRectMake (5, 0, 30, 30)]]; 레이블의 프레임이 상위 핀보기를 기준으로 배치되어 있다고 가정합니다. 보기가 있고 콜 아웃이 열리면 정확하게 그려집니다 –

+0

나를 위해 일했습니다. 감사! –

관련 문제