2014-10-20 48 views
10

我在Xcode 6中使用Interface Builder來製作應用程序,並且無法使文本字段和按鈕居中顯示在不同大小的屏幕上。自動佈局:Xcode 6:居中UI元素

我認爲這是一個在容器中選擇水平和垂直居中的問題,但它似乎並不是當我在自動佈局中嘗試它時。其實我已經修了一些,但我仍然沒有得到它。

我只是希望能夠看到我所有的按鈕和文本字段的任何尺寸的iPhone屏幕和現在仿真器僅顯示這樣這些UI元素的一部分:

View in iPhone 6 simulator

我也想在故事板而不是代碼中做到這一點,因爲我還沒有在代碼中做到這一點。

回答

11

步驟1:確保您的尺寸類至少在縱向視圖中覆蓋了所有的iPhone屏幕。因此,將尺寸類更改爲「wCompact hRegular」。

第2步:正確設置大小類後,將UITextFields和UIButton添加到故事板。對我來說,它看起來喜歡 -

enter image description here

第3步的東西: 之前,您開始添加的約束,你需要記住兩個東西 -

一個。您的元素(UITextField,UIButton,UIView或任何組件)需要明確地知道其起始位置,並且

b。你的元素需要知道它的大小意義,高度和寬度。

在這種情況下,因爲你想要中心你的元素,我只是假設它需要從左邊的10個標度開始居中,並且應該距離iPhone屏幕的右邊緣10個刻度。現在,這意味着,它的寬度將根據屏幕大小而有所不同,但其高度將相同。

所以,我剛纔添加的約束下面的方式爲第1文本箱 -

enter image description here

注意,在尺寸檢查,我設置文本框的起點,X和寬度的方式,它離左邊10英尺,離右邊10英尺。別擔心,這只是簡單的數學。

對於第2個文本框,我加約束,同樣way-現在

enter image description here

最後,對於按鈕,約束是以下各項

enter image description here

,你很好去。一切都以中心。

希望這會有所幫助。

+12

我想哭。我認爲android的XML佈局非常糟糕。 – Josh 2015-05-25 14:43:37

+0

有一次,你習慣了自動佈局,它會成爲你最好的朋友,但是,是的,學習曲線可能非常僵硬,因爲你將不得不經歷試驗和錯誤,才能真正理解你應該做什麼以及你應該做什麼「T。除此之外還有很多方法,你可以達到同樣的目的。 – Natasha 2015-05-25 14:49:54

+0

@Josh如果你不得不放棄XAML這個廢話,你會哭。這就是生活......微軟收購諾基亞手機。在這裏咬住子彈。 – Stonetip 2015-07-08 21:34:14

1

您需要利用故事板窗口底部的尺寸等級選擇器。

所以爲iPhone 6或6加上肖像,你會選擇一個緊湊的寬度和定期高度是這樣的:

enter image description here

然後你會做任何自動佈局的東西對於給定的設備有

+0

好的,一旦我爲肖像做了選擇,那麼在此之後我需要在自動佈局中做些什麼?我希望它適用於iPhone 6,我只使用肖像,因此它不需要適合橫向模式。 – cheznead 2014-10-21 10:00:00

4

通過在故事板窗口底部使用尺寸類別選擇器,將尺寸設置爲任意寬度和任意高度,然後遵循以下自動佈局約束。它會爲你工作。

enter image description here

首先選擇要設置自動佈局,然後選擇您的故事板的右下角的引腳選項,然後添加約束,如上面的圖片中的視圖,然後點擊按鈕Add 4 constrains

對所有視圖重複該過程並將約束設置爲Fix the top, bottom, left and right constrains of all views except the last button that should be fix from top,left,right and fixed height

+0

默認情況下,它是任何寬度和高度。我在哪裏做常量? – cheznead 2014-10-21 09:55:45

+0

@shinnyWhack如果它在任何寬度和高度的默認情況下,只是簡單地選擇你的意見一個接一個,並設置上圖中給出的約束。修復所有視圖的頂部,底部,左側和右側約束,除了應該從頂部,左側,右側和固定高度修復的最後一個按鈕。 – iHulk 2014-10-21 10:56:32

+0

但是我在哪裏解決這些限制,以及如何? (我不想通過編程來實現這些約束)。我是否使用自動佈局,如果是這樣,我使用哪種操作:對齊或引腳?他們很難與我一起工作,因爲我是一個完整的初學者。 – cheznead 2014-10-21 12:25:19