UIStackView 调整我的视图
UIStackView resizing my views
我正在制作自定义键盘,并希望在键盘左侧的 space 中居中放置标签和文本字段,我认为正确的方法是将它们合并到 UIstackView 中,然后将堆栈居中.但是,我在调整 textField 大小的堆栈时遇到了一些问题,导致我输入的任何文本都被剪掉了。
我尝试添加压缩阻力和许多不同的解决方案,但我很清楚我缺少有关 UIStackViews 如何工作的一些信息。通常我会让它们工作,但我不明白整个调整大小的部分。
前两个屏幕没有堆栈,将它们作为子视图添加到 viewcontrollers 视图中,第二个屏幕截图显示每次键盘退出时 stackView 都会调整我的文本字段的大小。
如何阻止堆栈视图调整其包含的视图的大小?
看来 UIStackView 本身就是一个自动布局组件,当它添加您排列的子视图时,它会使用约束自动定位它们。
由于 UIStackView 正在添加自己的约束,而我发现阻止它的最佳方法是简单地显式设置子视图约束:
textField.widthAnchor.constraint(equalToConstant: 300).isActive = true
Apple 不喜欢动态 StackViews:"In general, you should not use dynamic stack views to simply implement a scratch-built table view clone." 阅读
Apple Documentation on UIStackView 了解详情。
我正在制作自定义键盘,并希望在键盘左侧的 space 中居中放置标签和文本字段,我认为正确的方法是将它们合并到 UIstackView 中,然后将堆栈居中.但是,我在调整 textField 大小的堆栈时遇到了一些问题,导致我输入的任何文本都被剪掉了。
我尝试添加压缩阻力和许多不同的解决方案,但我很清楚我缺少有关 UIStackViews 如何工作的一些信息。通常我会让它们工作,但我不明白整个调整大小的部分。
前两个屏幕没有堆栈,将它们作为子视图添加到 viewcontrollers 视图中,第二个屏幕截图显示每次键盘退出时 stackView 都会调整我的文本字段的大小。
如何阻止堆栈视图调整其包含的视图的大小?
看来 UIStackView 本身就是一个自动布局组件,当它添加您排列的子视图时,它会使用约束自动定位它们。
由于 UIStackView 正在添加自己的约束,而我发现阻止它的最佳方法是简单地显式设置子视图约束:
textField.widthAnchor.constraint(equalToConstant: 300).isActive = true
Apple 不喜欢动态 StackViews:"In general, you should not use dynamic stack views to simply implement a scratch-built table view clone." 阅读 Apple Documentation on UIStackView 了解详情。