2017-08-17 61 views
-4

如何在不干擾其他設置(按鈕顏色,可視性和活動性)的情況下向按鈕添加約束。 我已經爲兩個按鈕添加了約束(請參閱圖片)。白色按鈕變成背景的顏色,不可點擊(不能按模擬器),紫色按鈕完全消失。將約束添加到按鈕

enter image description here

+0

他們以這種方式定義了約束條件,決不應干擾顏色和主動性。所以你的問題可能在其他地方1.無論如何看看** View Controller Scene **?點擊**約束**。展開它。拿另一張截圖。 2.分享您在調試器中獲得的完整錯誤消息。 3.你可能想看到[這裏](https://www.youtube.com/watch?v=qb05nLPYKz8) – Honey

+0

任何在U管自動佈局的視頻將對你有用。 現在添加,水平中心和垂直中心任何按鈕都可以幫助你,改變約束的乘數值來放置它 –

回答

0
  1. 沒有背景的按鈕是好的,你不會在模擬器中看到水龍頭。連接一個IBOutlet併爲它設置一些動作,你會看到它的工作原理。
  2. 紫色按鈕已經磨損了限制。根據iPhone7屏幕設置固定的頂部和底部約束。但是你正在運行SE模擬器。 SE屏幕小於7,自動佈局引擎無法正確應用您的約束,因此它會制約一些約束(您可以在日誌中看到相關消息)。 E.G.你已經設置了紫色按鈕必須有400點到屏幕頂部(或上面的一個控件),並且237點到屏幕底部。故事板上的按鈕高度= 30.然後我們有400 + 237 + 30 = 667。它的iPhone 6,7屏幕高度,所以一切都很好。當你在SE上運行你的應用時,發生了什麼: SE的屏幕高度爲568.所以自動佈局引擎嘗試將400設置爲最高 - ok。 237底部?錯誤。底部只剩下168分。所以我會制止底部約束,在日誌中告訴你它已經發生,並且設置最大可能值,使得168. 結果我們有568 - 400 - 168 = 0 - 這是按鈕的高度。 嘗試瞭解自動佈局引擎如何構建UI並正確更新您的約束。

如果你希望你的紫色按鈕被放置在底部和第一按鈕的中間,我建議:1。 添加一個空的觀點,並伸展到適合第一按鈕和底部之間的所有空的空間。通過將背景顏色設置爲透明顏色來使其透明。 2.添加約束0-0-0-0所有邊0到最近的視圖。 3.把你的紫色按鈕放在這個視圖中,並放在中間(當它在中間時你會看到藍色的交叉線) 4.向紫色按鈕添加2個約束:在容器中水平居中並垂直居中容器。

這將解決您的問題。

0

應用約束得當,它看起來像您已經應用在你的紫色按鈕,兩個頂級的約束,一個從上海華盈的頂部,另一個來自您的白色按鈕。

0

約束隻影響位置和大小。如果按鈕正在消失,這是因爲您的約束條件有衝突(可通過文檔樹中的場景或控制器旁邊的紅色箭頭標識)或不正確的約束條件(如約束垂直至底部:-50)

編輯:看起來你在iPhone 7環境下工作時以iPhone SE模式運行你的模擬器。除非你的約束是完美的,否則工作環境中顯示的內容將與你的模擬器中顯示的內容不同。