2017-06-12 56 views
1

我做了一個自定義的鍵盤,並希望標籤和textField居中在鍵盤上留下的空間,我想正確的方法是將它們合併到UIstackView中,然後居中放置堆棧。然而,我有調整我的textField調整大小的索姆問題,導致我輸入的任何文本被剪輯。UIStackView調整我的視圖

我嘗試添加compressionresistance和一些不同的解決方案,但它對我來說很清楚,即時通訊丟失了一些關於UIStackViews如何工作的信息。通常我會讓他們工作,但整個調整大小的部分我不明白。

前兩個屏幕沒有堆棧,將它們作爲子視圖添加到viewcontrollers視圖,第二個屏幕截圖顯示每次鍵盤退出時,stackView調整我的文本字段的大小。

如何停止調整其包含的視圖的大小視圖?

enter image description here enter image description here

enter image description here

enter image description here

回答

1

看來UIStackView本質上是一種自動佈局的構成要素,當它增加了你的安排子視圖,它會自動使用約束放置它們。

由於UIStackView是加入了自己的約束,而最好的方法,我發現來阻止它,是簡單明確地設置子視圖constraits:

textField.widthAnchor.constraint(equalToConstant: 300).isActive = true 
0

蘋果犯規般的動感StackViews:「一般情況下,你不應該使用動態堆棧視圖來簡單地實現一個從頭構建的表視圖克隆。「有關詳細信息,請閱讀 Apple Documentation on UIStackView