调整UIStackView控件中的UIView高度

我在iOS 9 SDK中使用UIStackView。 堆栈视图的高度是44点。 我在StackView中有一个UILabel和UIView,如下所示:

在这里输入图像说明

现在,我想让绿色的视angular比44更小,非常像20.我该怎么做?

更新:没有UIStackView我正在打破约束:

[GT.BubbleView:0x14536610] (Names: '|':UITableViewCellContentView:0x14536fd0 )>", "<NSLayoutConstraint:0x146b7300 GT.BubbleView:0x14536610.trailing == UITableViewCellContentView:0x14536fd0.trailingMargin>", "<NSLayoutConstraint:0x146c4000 'UIView-Encapsulated-Layout-Width' H:[UITableViewCellContentView:0x14536fd0(286)]>" 

如果你想要达到像下面那样的20×20平方:

在这里输入图像说明

然后,你所要做的就是添加另一个UIView到你的绿色视图。 使该UIView的大小20x20pts。 然后将小视图背景更改为绿色,将较大视图的背景更改为清除。

也就是说,这个解决scheme不需要堆栈视图,并且可能使UI太复杂。 我会build议只使用自动布局。

Stackviews是最有用的时候

  1. 您要补偿设备方向的变化,
  2. 想要在彼此之上堆叠很多东西,
  3. 想要创build一个非常复杂的布局,其中有许多元素,但是有可以重复的模式
  4. 只是希望能够删除一个元素或添加一个元素的大小修正自己

该列表并不详尽,但应该给你一个关于何时以及为什么使用堆栈视图的想法。

在原型单元之外

这种行为是微不足道的。 你可以简单地在你的视图上设置约束: 在这里输入图像说明

然后在stackview上设置约束: 在这里输入图像说明

希望这有助于,欢呼!

  1. 首先,您需要在cell上添加UIStackView 在这里输入图像说明

  2. 需要添加约束到你的UIStackView 在这里输入图像说明

  3. 调整你的UIStackView 在这里输入图像说明

  4. UILabel拖放到您的UIStackView 在这里输入图像说明

  5. 然后将UIView拖放到您的UIStackView 在这里输入图像说明

  6. 添加green-UIView像子视图pink UIView 在这里输入图像说明

  7. 现在你可以添加几个约束到green-UIView 在这里输入图像说明 在这里输入图像说明

  8. 现在,您可以在模拟器或设备上运行应用程序 在这里输入图像说明 在这里输入图像说明

    请注意 ,我没有为UILabel添加任何约束。

通过将宽度和高度约束的优先级设置为800或更高,可以容易地解决打破约束问题。