當我將UILabel對齊到頂部時,我的選項是超級視圖,但它始終使用導航欄作爲參考點。這會導致問題,當我隱藏導航欄和約束調整的事實,不再有導航欄,並導致標籤被拉高,這是一個不幸的反應,我不想發生(我希望它留在原地)。iOS 7的視圖控制器是全屏的,是否可以將約束設置到視圖的最頂端,而不僅僅是導航欄?
是否有可能只是說我的UILabel應該總是從全屏視圖的頂部開始,例如100pt?
當我將UILabel對齊到頂部時,我的選項是超級視圖,但它始終使用導航欄作爲參考點。這會導致問題,當我隱藏導航欄和約束調整的事實,不再有導航欄,並導致標籤被拉高,這是一個不幸的反應,我不想發生(我希望它留在原地)。iOS 7的視圖控制器是全屏的,是否可以將約束設置到視圖的最頂端,而不僅僅是導航欄?
是否有可能只是說我的UILabel應該總是從全屏視圖的頂部開始,例如100pt?
我不知道關於Interface Builder的,但你可以在代碼中輕鬆地做到這一點,如:
[self.view addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:|-100-[label]"
options:0
metrics:nil
views:@{@"label" : self.label}]];
UPDATE:以前我認爲標籤是主視圖的子視圖。如果不是那麼你可以使用以下約束:
[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:self.label
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:100]];
我測試過了,它工作正常。
仍然做同樣的事情。 –
@DougSmith:請參閱我的更新。 –
也許你可以試試navBar的「半透明」選項。 – quarac