ios - 防止 UIDatePicker 变得太宽

标签 ios xcode uiscrollview uistackview

我在 iOS 上的 View 层次结构是这样排列的:

UIViewController
  - UIView
    - UIButton
    - UIButton
    - UIScrollView
      - UIStackView
        - UILabel
        - UIDatePicker
        - UILabel
        - UIDatePicker

ScrollView 从 super View 的前导和尾随空间固定到 20,从其中一个按钮的底部固定到 0,从底部布局指南固定到 0。

堆栈 View 相对于父 View ( ScrollView )的前导、尾随、顶部和底部空间为 0。

我喜欢它在垂直方向上的样子: Vertical screenshot

但在水平方向上,我认为超出 UIDatePicker 主要内容的长行有点难看: Horizontal screenshot

我已经尝试了许多约束排列(UIDatePicker 上的最大宽度 + 中心 X,增加各种内容拥抱优先级,UIScrollView 和中心没有宽度限制X on it),但所有这些都导致了模棱两可的布局或冲突的约束。我怎样才能实现我的目标?

编辑:使用下面建议的约束(ScrollView 固定到容器,StackView 固定到 ScrollView 的 0 Trailing,Leading,Bottom 和 Top 空间,以及日期选择器上的宽度相等约束)StackView 拒绝扩展其宽度并固定在其父项的左侧。

StackView stuck to the side StackView stuck to the side, with view rectangles

即使在 StackView 上将前导和尾随约束设置为 0,也会发生这种情况。

最佳答案

UIStackViewAlignment 更改为Center

enter image description here

DatePicker 添加宽度约束 = 315

现在 stackview 会将 DatePicker 保持在 Center 宽度为 315 的 potraite 和 landscape

enter image description here

关于ios - 防止 UIDatePicker 变得太宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41136379/

相关文章:

ios - 使用 Xcode 6.4 在 swift 中使用 GMSPlacesClient 时出错

ios - 如果父 View 有一个 subview 作为保留属性,如果从其父 View 中删除,它会保留吗?

Xcode : shortcut for highlight feature

ios - 如何正确获取 didOutputSampleBuffer 的视频输出?

ios - 获取 interactivePopGestureRecognizer 关闭回调/事件

iphone - 使用 Xcode 4.2 和 iOS 5 SDK 时是否可以针对旧版 iOS 版本?

ios - 当 UIView 直接覆盖在它上面时,如何处理 UIWebView 中的链接?

iphone - 缩放 UIScrollView contentSize 以适应内部具有可变高度 UITableView 的 UIView

ios - 断断续续的分页 UIScrollView 体验

iOS UIWebView : Disable this (zoom out) state but have zoom in enabled