我在 iOS 上的 View 层次结构是这样排列的:
UIViewController
- UIView
- UIButton
- UIButton
- UIScrollView
- UIStackView
- UILabel
- UIDatePicker
- UILabel
- UIDatePicker
ScrollView 从 super View 的前导和尾随空间固定到 20,从其中一个按钮的底部固定到 0,从底部布局指南固定到 0。
堆栈 View 相对于父 View ( ScrollView )的前导、尾随、顶部和底部空间为 0。
但在水平方向上,我认为超出 UIDatePicker
主要内容的长行有点难看:
我已经尝试了许多约束排列(UIDatePicker
上的最大宽度 + 中心 X,增加各种内容拥抱优先级,UIScrollView
和中心没有宽度限制X on it),但所有这些都导致了模棱两可的布局或冲突的约束。我怎样才能实现我的目标?
编辑:使用下面建议的约束(ScrollView 固定到容器,StackView 固定到 ScrollView 的 0 Trailing,Leading,Bottom 和 Top 空间,以及日期选择器上的宽度相等约束)StackView 拒绝扩展其宽度并固定在其父项的左侧。
即使在 StackView 上将前导和尾随约束设置为 0,也会发生这种情况。
最佳答案
将 UIStackView
的Alignment
更改为Center。
DatePicker 添加宽度约束 = 315
现在 stackview
会将 DatePicker
保持在 Center
宽度为 315 的 potraite 和 landscape
关于ios - 防止 UIDatePicker 变得太宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41136379/