iOS:在StackView中更改TextField的高度(在StackView内)

问题描述 投票:0回答:1

我正在使用Xcode 10 / Swift 5 / iOS 12并获得此布局:

enter image description here

红色(垂直)StackView设置为:

  • 分布:“同等填写”
  • 高度:300(固定)
  • 框架:10(每边)
  • 间距:10

5个水平子StackViews:

  • 分布:“同等填写”
  • 每个52像素高((300-40)/ 5) - 不固定!

蓝色View只占用剩余的屏幕空间(顶部与红色StackView对齐,底部与“SuperView”对齐)。

标签自动占据52像素,但我希望两个TextField正好是30像素(+11以上/以下)。如果我只设置高度,InterfaceBuilder会抱怨冲突并且实际上没有任何改变。

如何在不改变周围水平StackView高度的情况下设置高度?

ios xcode uitextfield constraints uistackview
1个回答
1
投票

这是一个解决方案 - 假设您希望堆栈视图中的每个“行”高52磅(标签具有绿色背景,只是为了使其框架更容易看到)。

enter image description here

红色堆栈视图:

Alignment: Fill
Distribution: Fill Equally
Spacing: 10

每个水平堆栈视图:

Alignment: Center
Distribution: Fill Equally
Spacing: 0

Red View - 持有Red Stack ViewBlue View--在所有四个方面都被限制在Zero to SuperView。

Red Stack View以10分的成绩被限制在SuperView(这是Red View)的Top,Leading和Trailing。

Blue View以10分的速度被限制在SuperView(这是Red View)的领先位置,尾随位置和底部位置,而顶部位于距离Red Stack View底部10点的顶部。

唯一的高度约束是在Date Stack View ... Height = 52上设置的。由于Red Stack View的分布设置为Fill Equally,因此剩余的水平堆栈视图将自动达到52的高度。

并且,通过在每个水平堆栈视图上设置Alignment: Center,排列的子视图将居中对齐到52磅的高度。

© www.soinside.com 2019 - 2024. All rights reserved.