2014-09-06 74 views
43

當我將子視圖添加到根視圖控制器的視圖,並將自動佈局設置爲leadingSpace,trailingSpace,topSpace和bottomSpace爲零時,左側會出現一些額外的空間,右側(所以如果我打印子視圖的框架,它的原點將是16並且尺寸小於32應該是)。 因此,實際上我們得到的開頭和結尾的空格不爲零......xCode 6 beta 7:故事板在右側和左側增加了額外的空間

enter image description here

正如你可以在圖片領先的空間看 - 零,但origin.x = 16

此前我沒」用自動佈局努力工作,所以我的問題是: 這是一個新的xCode或功能的bug?

P.S.所有框架和約束都已更新。

回答

119

iOS 8將「content margins」的概念添加到UIView「What's New in Cocoa Touch」 video from WWDC 2014從約12點30分開始討論內容邊界(標題爲「適應邊距」)。

默認邊距是每邊8個點。佈局約束的每一端可以相對於視圖的邊距而不是視圖的真實邊緣(使用「文件」>「快速打開」以轉到NSLayoutAttribute的定義以查看可能性)。

您的約束條件是「相對於邊距」。當您使用「添加新的約束」酥料餅的約束,你可以選擇無論是利潤率相對與否:

constraint-popover

它總是默認爲利潤率相對;如果您不希望它們成爲保證金相對,則每次添加約束時都必須關閉複選框。

您無法在屏幕快照的快速編輯彈出窗口中更改約束是否與邊距相關。相反,雙擊該約束以調出其完整的屬性檢查器。在那裏,你可以使用彈出菜單來選擇,對於約束的每一端,無論是利潤率相對與否:

constraint-attributes