2010-10-01 34 views
2

我有一個詳細視圖與各種標籤,並提供有關地點(地址,電話等)的信息。所提供的信息比iPhone屏幕高,所以它們都在UIScrollView(本身在UIView內),允許您上下滑動以查看所有內容。UIScrollView內的MKMapView不會隨着滑動移動

我在scrollview裏面也有一個MKMapView。當它沒有附加到界面構建器中的任何東西時,它會隨着滾動視圖向上和向下移動,因爲它應該保持與滾動視圖中其他控件的正確相對位置。您可以玩地圖,縮放和平移等,並默認顯示您的當前位置。

但是,只要我將它掛鉤到IB中的MKMapView變量,mapview不再滾動scrollview。相反,它實際上只是坐在它最初顯示的位置(視圖的底部,一些地圖隱藏在視圖底部的下方),並且滾動視圖在其後面向上和向下滾動。

這裏發生了什麼?我嘗試在IB中更改一堆mapview和scrollview的屬性,但它沒有效果。我唯一沒有嘗試過的就是完全用代碼創建mapview,但這看起來不是一個明顯的解決方案。

編輯:對不起所有人過期的賞金。我掛在項目的其他領域,直到現在才能回到這裏。我不知道它會過期。

進一步編輯:好吧,我想通了我的問題。至於原因,完全陌生的我,我在viewcontoller的viewDidLoad有

[self.view addSubview:mapView]; 

。一旦它被連接起來,那麼這行代碼將(明顯)使地圖成爲我的視圖的子視圖,有效地將其從scrollview中移出。

愚蠢的錯誤,遺憾浪費你的時間(和賞金)。在我認爲回答者有機會看到結果後,我會刪除這個問題。

+1

不要刪除問題。我之前犯過這個錯誤,我認爲這對iPhone/Mac開發者來說是常見的錯誤。最好離開整個線程,讓其他人從中學習。 – par 2010-10-27 20:06:49

+0

Thx不刪除問題。我有同樣的問題,它也幫助了我。 – 2015-07-01 17:15:13

回答

0

我想通了我的問題。由於我完全不知道的原因,我有

[self.view addSubview:mapView]; 

在viewcontoller的ViewDidLoad。一旦它被連接起來,那麼這行代碼將(明顯)使地圖成爲我的視圖的子視圖,有效地將其從scrollview中移出。

0

您是否已將setContentSize屬性設置爲viewDidLoad方法中的內容大小UIViewController

+0

MKMapView沒有contentSize屬性。 – 2010-10-27 14:05:14

+0

不要緊,我的簡單(和莫名其妙的)錯誤,請參閱上面的進一步編輯。 – 2010-10-27 17:09:16

0

看起來就像你使用ScrollView一樣,你需要在你的DetailView中滾動設施。

而不是使用滾動型的,我有這樣的一個替代....

您可以通過使用的TableView,而不是滾動型試試你的運氣辛苦。

只需將所有標籤和mapView放在一個視圖中,然後將該視圖放在TableView的標題中。

這樣的:

的UITableView

- >查看

------>所有標籤//裏面的singleView

------>的MKMapView //在視圖的底部

仍然可以使用地圖進行播放,縮放和平移等,默認情況下會顯示當前位置。

希望這種替代可以解決你的問題.......

一切順利

+0

啊,嗯。好吧,如果我不能以其他方式使用它,那麼我會盡力,謝謝。 – 2010-10-27 14:06:03

+0

不要緊,我的簡單(和莫名其妙的)錯誤,請參閱上面的進一步編輯。 – 2010-10-27 17:05:07

0

如果掛接在IB的出口被打破原本的工作來看,你也許可以試試這個在運行時找到視圖:

- (UIView *) findClass:(Class) aClass inView:(UIView *) aSuperview { 
    for (UIView *view in aSuperview.subviews) { 
     if ([view isKindOfClass: aClass]) break; 
     if ((view = [self findClass: aClass inView: aSuperview])) break; 
    } 

    return view; 
} 

- (void) viewDidLoad { 
    MkMapView *map = [self findClass: [MkMapView class] inView: self.view]; 
} 
+0

有趣的想法。我試了一下,但不幸的是,在構建時,viewDidLoad中的MKMapViews無法識別。我不太明白爲什麼:包含在內,並且(顯然)包含MapKit框架。它非常滿意標題界面中的MKMapView聲明。任何想法爲什麼? – 2010-10-27 14:29:38

+0

不要緊,我的簡單(和莫名其妙的)錯誤,請參閱上面的進一步編輯。 – 2010-10-27 17:05:50