繁体   English   中英

水平的UIStackView-如何在内部对齐项目,以便一个向左浮动而另一个在中心对齐?

[英]Horizontal UIStackView - how to align items inside so that one is floated left and the other sticks in center?

我正在制作“首选项”屏幕,并在顶部标题的布局方面苦苦挣扎。 我有一个简单的“后退”按钮和一个标签。 要求是,后退按钮必须始终向左浮动,标签必须在中间,其内容居中。

到目前为止,我创建了一个包含两个项目的stackview(水平)。 我已将分布指定为等间距,并添加了宽度限制,如下所示:按钮-60标签-200

这在一个屏幕上看起来不错,但是我确信它不会起作用,因为屏幕宽度在不同设备上以及在纵向/横向之间都不同。

在CSS中,只需将按钮指定为float:left,将标签指定为margin:auto,如何在XIB中使其工作?

这是供参考的屏幕截图:

在此处输入图片说明

您有几种选择...


最简单,最接近您的CSS描述:

在此处输入图片说明

按钮从顶部限制为0,从顶部限制为8(根据需要进行调整); 标签被限制在垂直于按钮居中的位置,水平居中以进行查看。

缺点:如果标签上的文字过多,它将与按钮重叠。


第二种选择:

在此处输入图片说明

与上面相同,但在右上方添加一个“ spacer” UIView ...将其限制为0到顶部,8限制为尾随,垂直居中放置在按钮上,并将其宽度和高度限制在按钮上。 然后,将>= 8约束添加到导致按钮尾随的标签,并将标签尾随分隔符视图引入。 这将允许标签根据其文字水平扩展,但会避免重叠(文本将是...截断,如果有太多的适应)。


第三种选择-使用堆栈视图:

在此处输入图片说明

堆栈视图设置:

Axis: Horizontal
Alignment: Fill
Distribution: Fill
Spacing: 8

约束堆栈视图0到顶部,8个前导和尾随(仅用于侧面的少量填充),添加按钮,标签和UIView 将“间隔”视图限制为与按钮相等的宽度。 将按钮的“水平Content Hugging Priority = 1000设置为Content Hugging Priority = 1000 (将使其保持标题宽度)。

还有其他方法,部分取决于您是否要执行此处未显示的其他任何操作,但是这三种方法都能完成任务。

暂无
暂无

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

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