用過autolayout的對pin都應該不陌生,通過這個選項可以設置控件的四周的外邊距:Top Space、Leading Space、Trailing Space、Bottom Space。
在Xcode6的時代,你可以有2種選擇來使用pin:
1)通過菜單項:Editor->pin
2)通過設計器下方的pin按鈕,就是下圖這個(鼠標放在上面會顯示出pin):
這兩種方法稍微有一些區別,使用菜單項里的pin(Editor->pin)可以直接選擇Top Space to Superview,就是直接設置距離superview的上邊距,如果用那個pin按鈕(上圖那個),他會根據當前view的位置選擇距離上一個view的邊距(不一定是superview),而且如果在navigationcontroller里,經常會出現Top Space to Top Layout Guide,關于Top Layout Guide和Bottom Layout Guide是什么鬼我還沒搞清楚,但是一般來說我們只希望view的約束跟superview有關。所以出現這個情況后,我一般都會刪掉約束,然后通過Editor->pin來設置Top Space to Superview。
好了,上面都是廢話,下面才是本文的重點。
相信已經有不少人將Xcode升級到了Xcode7了吧,然后你就會發現Editor里找不到pin了,沒了..沒了...沒了.....
然而使用pin按鈕依然會出現Top Space to Top Layout Guide,如果想設置Top Space to Superview該怎么辦呢?
找了好久,終于在stackoverflow上找到了答案(這里順便吐槽下百度搜索,除了很舊很舊的數據,真心找不到有價值的資料,能用google的還是用google吧)
在約束輸入框右側有個向下的箭頭,點開那個箭頭會出現選擇,如下圖:
看到了吧,現在勾選的是“Top Layout Guide”,我們只要選擇View就可以了,出來的效果就是Supview。這個View表示的是ViewController的根view,因為我這個是直接加到ViewController的根View里的,所以這里的View就是Superview。
如果有其他控件存在,這里的選項可能會不一樣,但是基本上一看就都明白了。
好了,要說的就是這么多了,希望能幫到你,如有錯誤歡迎指正。
新聞熱點
疑難解答