2012-09-26 51 views
2

我正在使用J4n0註解碼(github)在MapKit中實現自定義註記。自定義註釋視圖在iOS6上不起作用

它在iOS5上工作得很好。但在iOS6上,我有兩個問題:

  1. AnnotationView上顯示註釋(請參見圖片1)。
  2. 第一次點擊註解打開AnnotationView就好了,但第二次點擊會打開一個尺寸不合適的註解(見圖2)。

是否有人使用這個庫有一些類似的問題/解決方案?

如果需要,我可以提供一些代碼!

annotation on the view bad size

+0

支票本林,它可以幫助你..... http://stackoverflow.com/questions/13598739/custom-callout-not-displayed-correctly-in-ios6/13716621#13716621 – 08442

回答

2

如果批註顯示在AnnotationView嘗試代碼:

- (void)didMoveToSuperview { 
    [super didMoveToSuperview]; 
    [self.superview bringSubviewToFront:self]; 
} 

萬一上述解決方案不起作用嘗試

view.layer.zposition = 1 
+0

我使用'didMoveToSuperview'到我的'MKAnnotationView'中並且它正在工作,我的註釋不會超過我的annotationView,非常感謝你。但它似乎是一個補救措施,它不能解釋爲什麼它第一次不能正常工作。蘋果似乎已經改變了管理註釋和地圖的方式,是否有人知道如何以及現在管理它們的正確方式是什麼? –

+1

http://sackoverflow.com/questions/13598739/custom-callout-not-displayed-correctly-in-ios6/13716621#13716621 – 08442

+1

bringSubviewToFront不適合我。我改爲使用view.layer.zposition = 1,並將視圖推到地圖上的所有內容之上。 – Pauls

-1

我不知道無論你是否使用了與我的相同的代碼,我從某處下載它來定製annotationView和我也第二次發現它的大小是不正確的。我已經注意到removeAnnotation功能,也將使annotationView再次調用它的didMoveToSuperview!然後我挖掘didMoveToSuperview中的代碼,發現我下載的代碼(我希望你遇到同一個代碼),在它中做一些動畫,這樣會使動畫代碼調用兩次。這使得「第二次點擊打開一個不好的尺寸的註釋」的問題

所以刪除這個動畫代碼,或使其撥打其他地方,而不是在didMoveToSuperview,但正確。我希望這會幫助你,並希望你發現我錯了時會分享你的建議。