【问题标题】:UIStackView resizing my viewsUIStackView 调整我的视图大小
【发布时间】:2017-06-12 13:51:09
【问题描述】:

我正在制作一个自定义键盘,并且想要一个标签和一个文本字段在键盘上方的空间中居中,我认为正确的方法是将它们合并到 UIstackView 中,然后将堆栈居中。但是,我在调整我的 textField 大小的堆栈时遇到了一些问题,导致我输入的任何文本都被剪切。

我尝试添加抗压性和许多不同的解决方案,但我很清楚我错过了一些关于 UIStackViews 如何工作的信息。通常我让它们工作,但我不明白整个调整大小的部分。

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

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

【问题讨论】:

    标签: swift uistackview


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      Apple 不喜欢动态 StackViews:“一般来说,您不应该使用动态堆栈视图来简单地实现临时构建的表视图克隆。”阅读 Apple Documentation on UIStackView了解详情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多