Swift 调整视图的大小

Swift 调整视图的大小,swift,uistackview,Swift,Uistackview,我正在制作一个自定义键盘,想要一个标签和一个文本字段位于键盘剩余空间的中心,我想正确的方法是将它们合并到一个视图中,然后将堆栈居中。然而,我在调整文本字段的堆栈大小时遇到了som问题,导致我输入的任何文本都被剪裁 我尝试添加压缩阻力和许多不同的解决方案,但很明显,我遗漏了一些有关UIStack视图如何工作的信息。通常我让他们工作,但整个调整大小的部分我不明白 前两个屏幕没有堆栈,将它们作为子视图添加到viewcontrollers视图,第二个屏幕截图显示每次键盘退出时stackView调整我的文

我正在制作一个自定义键盘,想要一个标签和一个文本字段位于键盘剩余空间的中心,我想正确的方法是将它们合并到一个视图中,然后将堆栈居中。然而,我在调整文本字段的堆栈大小时遇到了som问题,导致我输入的任何文本都被剪裁

我尝试添加压缩阻力和许多不同的解决方案,但很明显,我遗漏了一些有关UIStack视图如何工作的信息。通常我让他们工作,但整个调整大小的部分我不明白

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

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


看起来UIStackView本质上是一个自动布局组件,当它添加排列的子视图时,它会使用约束自动定位它们

由于UIStackView正在添加其自身的约束,而我发现阻止它的最佳方法就是显式地设置子视图构造:

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

苹果不喜欢动态堆栈视图:“一般来说,你不应该使用动态堆栈视图来实现一个临时构建的表视图克隆。” 详情请参阅