2015-01-16 48 views
0

我有最基本的設置可能。見圖片1:自動佈局不那麼自動

pic1

不管你信不信,這是使用自動版式我的第一個項目,我已經創造了一切事先編程。這個基本的設置實際上是一個UIWebView定位在底部的1個定製UIView。以前我使用的工具欄爲我處理所有事情,並且沒有任何限制。但是,當將UILongPressGesture添加到UIBarButtonItem的子視圖中時,工具欄會爲事件處理創建差異,所以我決定將工具欄轉換爲UIView(即使將UIView插入工具欄,它自然會轉換爲按鈕項)更容易處理。但運行時,有觀點得到由UIView尺寸(48像素)查看產品圖2.然後,當我添加按鈕,它只是得到的半推離屏幕更糟糕:

pic2

我已經審查的文件和支持HERE沒有結果。我花了大約24小時來研究它,並且學到了很多東西,所以我的努力​​並不是一成不變的。 我知道'添加缺少約束',約束只是基於當前建立的建議,它們在所有情況下都不具體,所以我在嘗試在審閱文檔後嘗試使用控件拖動來創建自己的設置,但是我的設置最後得出的結果沒有什麼不同,並且呈指數性地更加草率。所以我決定用Xcode中包括以下人口的限制:

UIWebView的約束

pic3

自定義的UIView(工具欄)約束

pic4

任何堅實的起點建議?內在尺寸與它有什麼關係?

編輯:工作限制我沒有意識到你可以簡單地忽略一個約束。看起來罪魁禍首是在頂層佈局指南中增加一個。

pic 5

只是爲了回答者@馬特:

常數0結果:有在邊緣

pic6

-16爲主導空間/後空間的結果小的間隙在我的情況下,一個真正的工具欄模擬沒有突出的警告或問題。謝謝

+0

問題是什麼?在這裏的所有討論中我找不到具體的問題。 – matt

+0

嗨@matt問題不是問題。更多的聲明。我的自動佈局約束不起作用。我已經添加了自己的約束,而不是使用「添加缺失」,但它仍然導致UIView被推出屏幕。基本上問,我需要做些什麼才能使它不會被推到屏幕上或丟失幀 – soulshined

+0

堆棧溢出是關於問題,而不是語句。如果你有一個具體的問題,請不要問。 「更糟」不是問題描述。清楚地說出正在發生的事情,你想要什麼,以及你嘗試過什麼。花點時間思考構思你的問題。這會讓你更容易獲得幫助(如果你需要幫助)。謝謝! – matt

回答

2

讓我們來談談界面底部的視圖,以及如何使用自動佈局來定位和調整工具欄的位置和大小。

要使用自動佈局,您需要提供足夠的信息來確定位置和大小。該視圖是視圖控制器主視圖的子視圖。主視圖將根據屏幕調整大小,因此我們希望使用自動佈局來調整子視圖(「工具欄」)的大小。這是自動佈局的目的!

因此,將subview前緣限制到superview的前緣,並將subview後緣限制到superview的後緣,兩者的constant均爲0.現在右側和左側邊緣與超級視角匹配!

這需要處理水平位置和大小。

現在我們來談談垂直位置。該位置應該是底部。因此,將子視圖底部邊緣限制在視圖控制器的底部佈局指南中,再次將constant設爲0.現在視圖的底部位於底部!

我們唯一不知道的是子視圖的頂部。在我們的情況下,這與知道它的高度是一樣的。因此,給子視圖一個高度約束,將它的constant設置爲一個合理的值,如40,然後就完成了。

+0

你最好。你真的是。我解決了我的限制,現在所有工作都處於正常工作狀態但請回顧我編輯的問題,你的知識現在是足智多謀的,我在這裏學習。你能提供關於爲什麼將約束設置爲-16的輸入,就像xCode提供的工作,但常數0不是?當常數0對我更有意義?順便說一句,問題是我添加了頂部佈局約束,導致它下推,我沒有意識到你可以省略一個,我認爲所有4個都是串聯使用的。根據您的建議忽略它後,它是一個魅力! – soulshined

+0

你被利潤率搞砸了。在這裏看到我的答案:http:// stackoverflow。com/a/27976007/341994 – matt

+0

你太好了。謝謝 - – soulshined