我對Map Kit View有問題設置約束。將約束添加到地圖視圖
這裏是我當前的約束截圖:
然而,當我切換到另一個屏幕大小,的MKMapView沒有相應調整,雖然具有完全相同的約束標籤的行爲與預期:
能否請你告訴我,我究竟做錯了什麼?
這裏是Xcode項目:
https://dl.dropboxusercontent.com/u/18149046/Test.zip
我對Map Kit View有問題設置約束。將約束添加到地圖視圖
這裏是我當前的約束截圖:
然而,當我切換到另一個屏幕大小,的MKMapView沒有相應調整,雖然具有完全相同的約束標籤的行爲與預期:
能否請你告訴我,我究竟做錯了什麼?
這裏是Xcode項目:
https://dl.dropboxusercontent.com/u/18149046/Test.zip
我無法打開你的故事板 - 它只是給了我死亡的旋轉的皮球,所以我寫了我自己。像往常一樣與自動佈局,有很多種方法來實現最終的結果,但每個解決根本的問題是:
MKMapView
也不是UITableView
有一個固有大小(標籤確實有一個內在的大小)。UITableView
的y position
和height
和MKMapView
所以我表明這樣做的兩種方式來指定MKMapView
一個height
。
方法1立式UIStackView
UIStackView
到版式參考/你的SuperViewMKMapView
和UITableView
:(我的首選方法:使用UIStackView
)屬性 - >分配到Fill Equally
這樣做的好處是:你可以自定義內IB直接爲不同尺寸大小的佈局,並且沒有「神奇」數字,所以它適用於所有尺寸等級沒有變化
方法2(硬編碼的高度成用於MKMapView
容器視圖):
UIView
並放置MKMapView
內它MKMapView
,以箭頭顯示爲紅色(並且如果已設置,則取消阻止I-Bars);請參閱下面的圖片MKMapView
的UIView
的高度;在我的例子中,我硬編碼300
UIView
包含MKMapView
到前置,頂部佈局指南/上海華邊線MKMapView
頂端UITableView
UITableView
的UIView
對前置,底部佈局指南/上海華邊線這有缺點,您可能需要根據不同的尺寸iDevices調整MKMapView
高度約束(儘管您可能能夠將約束更新爲SuperView
的一部分;我沒有檢查)
在這兩個我的例子,我給一個height
到MKMapView
然後定義y position
和UITableView
的height
。
如果您正在尋找一個詳細解釋Autolayout的教程(如果文檔沒有使一切變得清晰),那麼我建議iTunesU
上的Developing iOS 9 Apps with Swift
,但互聯網上有大量的數字。
謝謝!所以我明白,即使應用了相同的約束條件,Map View和Labels也不會以相同的方式運行。我不知道堆棧視圖功能,它使這更容易!我非常感謝你的幫助。 – lukas
我不明白你的問題或你的「問題」。你遇到了什麼錯誤?你確切的問題是什麼?你期望的結果是什麼,你實際得到了什麼?圖片會有幫助,因爲你的約束看起來很好。 –
我編輯了這個問題,並按照您的建議提供了額外的屏幕截圖。我希望現在更清楚。(並且對我的英語感到抱歉) – lukas
界面生成器告訴你在屏幕左邊的樹形視圖中的問題(紅色箭頭對着現場),但我現在可以看到你有兩個相互衝突的約束:你告訴'MKMapView'垂直設置大小,使其「從屏幕底部開始259點」和「從TableView頂部開始0點」。這些衝突。刪除'屏幕底部259點'的約束。如果你發現這很困難,那麼我強烈建議你閱讀文檔或找一個教程。 –