我正在制作一个自定义键盘,并希望标签和textField位于键盘左侧的空间中,我认为正确的方法是将它们合并到UIstackView中,然后使堆栈居中。但是,我在调整堆栈大小问题时遇到了问题,导致我输入的任何文本被剪裁。
我尝试添加了compressionresistance和一些不同的解决方案,但我很清楚我错过了一些关于UIStackViews如何工作的信息。通常我让它们起作用,但整个调整大小的部分我都不明白。
前两个屏幕没有堆栈,将它们作为子视图添加到viewcontrollers视图,第二个屏幕截图显示每次键盘重新签名时stackView调整文本字段的大小。
如何阻止stackview调整其包含的视图的大小?
答案 0 :(得分:1)
似乎UIStackView本身就是一个自动布局组件,当它添加你安排的子视图时,它会自动使用约束来定位它们。
由于UIStackView正在添加自己的约束,并且我发现阻止它的最佳方法是简单地显式设置子视图约束:
textField.widthAnchor.constraint(equalToConstant: 300).isActive = true
答案 1 :(得分:0)
Apple不喜欢动态StackView:"通常,您不应该使用动态堆栈视图来简单地实现临时构建的表视图克隆。"阅读 Apple Documentation on UIStackView了解详情。