繁体   English   中英

根据最高的子视图按钮自动调整超视图高度

[英]Autosizing superview height according to tallest subview button

在此输入图像描述

我有以下布局。 黄色视图是一个buttonsContainerView ,它作为容纳3个相等宽度按钮的容器。 所有三个按钮都是黄色按钮的子视图buttonsContainerView 我给出的所有约束都是基本的,可见的并且可以在截图中理解,但我仍然会在下面解释它们。

  • buttonsContainerView - (黄色视图)固定到viewControllerviewsafeArea ,其插入为20 它的领先和尾随被固定在view的领先和尾随。
  • Button 1 - 顶部,底部和前导分别固定在buttonContainerView的顶部,底部和前部。 尾随固定到Button 2的前导。
  • Button 2 - 顶部,底部分别固定在buttonsContainerView的顶部和底部。 领先固定到Button 1尾随。 尾随固定到Button 3的前导。
  • Button 3 - 顶部,底部和尾部分别固定在buttonsContainerView的顶部,底部和尾部。 领先于Button 2的尾随。
  • 等宽 - 所有三个按钮的宽度约束相等。

问题 - 这三个按钮中的任何一个都可以动态获得更长的标题,并且根据不同的手机屏幕尺寸,它可能无法在单行中容纳。 我希望我的buttonsContainerView的高度根据最高的按钮调整其高度,即具有最长标题的按钮因此更高的高度(在屏幕截图中 - Button 2 ,中心按钮)。 在我的例子中, buttonsContainerView占据了最小按钮的高度(屏幕截图中的按钮1和按钮2)。 如何使用AutoLayouts实现此目的?

我已经重新创建了您的设置并且找不到任何问题,下面是下图,您能否显示有关此按钮设置的更多信息? 或者尝试删除它们并再次添加: 在此输入图像描述

您可以通过使用下一个算法的顶级插入约束组合来实现此目的:
1.添加按钮水平约束(左,右,相同宽度)。
2.为所有按钮添加中心垂直约束。
3.为所有按钮添加具有 优先级的顶部插入约束。
4.为具有 优先级的所有按钮添加更大或相等的顶部插入。

主要思想是对按钮的垂直插入的低优先级约束,自动布局引擎将尝试满足它,但是更大或相等的顶部插入将阻止对小按钮执行它。

在此输入图像描述

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM