2013-10-18 55 views
1

當我將UILabel對齊到頂部時,我的選項是超級視圖,但它始終使用導航欄作爲參考點。這會導致問題,當我隱藏導航欄和約束調整的事實,不再有導航欄,並導致標籤被拉高,這是一個不幸的反應,我不想發生(我希望它留在原地)。iOS 7的視圖控制器是全屏的,是否可以將約束設置到視圖的最頂端,而不僅僅是導航欄?

是否有可能只是說我的UILabel應該總是從全屏視圖的頂部開始,例如100pt?

+0

也許你可以試試navBar的「半透明」選項。 – quarac

回答

1

我不知道關於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]]; 

我測試過了,它工作正常。

+0

仍然做同樣的事情。 –

+0

@DougSmith:請參閱我的更新。 –

相關問題