2013-09-01 45 views
0

我想弄清楚如何使用自動佈局垂直居中視圖。 我是新來的這個技術,所以這讓我有些問題...... 這是我在Interface Builder控制器: enter image description here垂直中心子視圖使用自動佈局

的灰色部分是上海華,它包含一個自定義視圖(黃色的)和一個標籤(紅色的);黃色視圖固定在超視圖的底部,它具有固定高度和寬度。紅色視圖也具有固定的寬度和高度。

我的目標是將我的紅色視圖垂直居中在灰色視圖的可見部分,其可見高度爲superview.height - yellowView.height。 我該怎麼做?
非常感謝!

+0

你需要的紅色以保持不同尺寸的屏幕中輸入,並在轉動? – rdelmar

+0

不同的屏幕尺寸 – matteodv

回答

2

做到這一點最簡單的方法,是使灰色視圖主視圖的子視圖一樣,那麼你可以只給該標籤是IB或代碼中的centerY約束。如果你不能這樣,出於某種原因,你可以在代碼中改變centerY約束的常量值,給它一個黃色視圖高度的1/2的值。在IB中給這個標籤一箇中心約束,併爲它製作一個IBOutlet(在我的例子中,我稱它爲centerCon)。我的黃觀的固定高度爲200

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.centerCon.constant = 100; 
} 
+0

我使用你的解決方案......現在我對Auto-Layout更有信心!謝謝;) – matteodv

+0

@matteodv,我不知道你什麼時候看到我的答案,但我編輯它以顯示更簡單的方法。 – rdelmar

-3

一個在這裏簡單的解決方法將是這樣的:

redView.center = CGPointMake(superview.width/2, (superview.height - yellowView.height)/2); 
+3

我知道我可以像這樣設置它的中心,但是我的問題是使用自動佈局和IB對齊它... – matteodv

+0

當基於約束的佈局被使用時,這不起作用。 – marko