我有2個視圖。一個MapKitView和一個UILabel。自動佈局已打開。保持一個UILabel以改變內容和AutoLayout爲中心
我想要MKView佔用整個屏幕(這似乎工作正常)和UILabel保持從屏幕底部的自動距離,但水平居中。 UILabel內容以編程方式更改,之後我致電sizeToFit
。
在UILabel上調用sizeToFit
之後,它不再居中 - 寬度似乎只從右側(後緣)調整,左側保持在一個固定的位置。
我的理解是,我應該能夠通過在IB中設置正確的約束條件來實現我想要的嗎?
我已經應用到標籤的約束條件是:
Height Equals: 32
Width Equals: 166
Bottom Space to: Superview Equals: Default
Align Center X to: Map View
只有最後一個問題,「居中對齊X」是一個用戶約束 - 被IB提供的休息。
我已經嘗試了很多東西,雖然沒有太多的理解(大概是我的問題!)。
我在標籤上打了setTranslatesAutoresizingMaskIntoConstraints: NO
。 我已經設置了標籤的autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin
。我曾嘗試將preferredMaxLayoutWidth
設置爲隨機值。在標籤上撥打needsUpdateConstraints
。我嘗試將sizeToFit
撥打電話viewDidLayoutSubviews
。
我得出結論我需要多一點理解我應該如何接近這一點。當自動佈局打開時,是不是要調用的東西是sizeToFit
?在撥打sizeToFit
之後,我需要以某種方式製作自動佈局嗎?我注意到,旋轉模擬器似乎集中在標籤上,所以刺激聽起來有可能嗎?
我重新閱讀了Apple Auto Layout guide,但恐怕我仍然不確定自己做錯了什麼,並且提示的調試技巧(visualizeConstraints等)在iOS上似乎不起作用。
感謝您的任何線索,你可以備用。