2017-06-12 36 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