2017-06-23 55 views
1

我是iOS新手,似乎很難處理約束。我在視圖中添加了一個textfield,並試圖將它放置在視圖上的位置。我使用故事板右下角的「添加新約束」按鈕添加了一些約束,但在模擬器上運行時,textfield位置仍然關閉。有人能幫助我嗎?AutoLayout約束已應用但無法正常工作

更新: 我嘗試添加這些限制,但仍然沒有運氣

Storyboard

Simulator

+0

你應該在iPhone 7 plus模擬器上運行它。 –

+0

@SourLeangChhean在iphone 7模擬器上運行它有一個特別的原因。我擁有一個5並在該設備上測試該應用程序 –

+0

1.您是否還在代碼中執行任何操作? 2.您的第一張圖片:您可以​​拍攝另一張截圖,還可以展開左側窗格,以便我們完全看到這些限制嗎?現在我們只能看到他們一半? – Honey

回答

0

你需要右鍵點擊你的故事板的按鈕,拖動約束線,相關設備然後編輯它。 demo

您還可以通過代碼添加約束條件,如vfl或masonry。

0

auto layout每個視圖需要計算position(x,y)size(height, width),使我們不得不限制添加到特定視圖

例如:

myTextField將我想對齊與視圖頂部從頂部的視角和左邊的10px,右邊的10px,高度是100px

給出約束條件,如在視圖中放置文本文件並添加頂部約束和設置值10,添加前導約束集10,添加激發約束 將其設置爲10,最後添加高度約束100

然後,文本字段將在視圖頂部與任何設備上的所需幀對齊。

enter image description here

+0

請看我更新的帖子。 –

+0

@AhteshamKhan你能解釋一下你想放置文本框的位置嗎?它旁邊是下一個按鈕嗎? –

1

所以,對於一些奇怪的原因,它開始工作後,我改變了我的「視圖」選項,從iPad到iPhone。它不是一個合適的解決方案,但我只是暫時使用它。

+0

它在iPhone模擬器中無法正常工作的原因在iPad模擬器中看起來不錯,這是由於底部的限制。當iPhone屏幕上應用了這麼大的距離時,該字段被推離屏幕。爲了證明這一點,請刪除所有約束,並簡單地添加水平中心和垂直居中約束。重置您的高度和寬度約束。無論使用的模擬器如何,該字段都會出現。 –

+0

@MartinMuldoon我試過這樣做,它仍然很奇怪,並沒有顯示出我想要的位置。見上面更新的問題。任何想法我做錯了什麼? –

+0

@MartinMuldoon仍然沒有運氣。檢查上面的截圖。 –

0

您正在使用'水平中心和垂直中心'約束,當您在其他設備上運行應用程序而不是其他設備時,您將使用該設備進行設計,因爲垂直中心和水平中心將會不同屏幕。

實現此目的的用戶頂部,底部,拖尾和前導約束。