UIStackView调整我的视图大小

时间:2017-06-12 13:51:09

标签: swift uistackview

我正在制作一个自定义键盘,并希望标签和textField位于键盘左侧的空间中,我认为正确的方法是将它们合并到UIstackView中,然后使堆栈居中。但是,我在调整堆栈大小问题时遇到了问题,导致我输入的任何文本被剪裁。

我尝试添加了compressionresistance和一些不同的解决方案,但我很清楚我错过了一些关于UIStackViews如何工作的信息。通常我让它们起作用,但整个调整大小的部分我都不明白。

前两个屏幕没有堆栈,将它们作为子视图添加到viewcontrollers视图,第二个屏幕截图显示每次键盘重新签名时stackView调整文本字段的大小。

如何阻止stackview调整其包含的视图的大小?

enter image description here enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

似乎UIStackView本身就是一个自动布局组件,当它添加你安排的子视图时,它会自动使用约束来定位它们。

由于UIStackView正在添加自己的约束,并且我发现阻止它的最佳方法是简单地显式设置子视图约束:

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

答案 1 :(得分:0)

Apple不喜欢动态StackView:"通常,您不应该使用动态堆栈视图来简单地实现临时构建的表视图克隆。"阅读 Apple Documentation on UIStackView了解详情。