我需要在水平UIStackView中有X个按钮,它驻留在UIScrollView中。要求按钮在堆栈视图中均匀分布,并且随着按钮数量的增加,我应该缩小间距,使它们与屏幕的宽度相适应,但是有一个最小的间距,当间距减小并达到最小间距时,按钮就可以超出屏幕的宽度。
例如,当我有三个按钮时,我想将它们布局如下
|B1 B2 B3|
当我有五个按钮时(假设它们仍然可以以较小的间距与屏幕的宽度相匹配):
|B1 B2 B3 B4 B5|
但是,当我有6个按钮并且必须保持最小间距时,我想要在它的容器UIScrollView中滚动堆栈视图。
查看UIStackView的doco,属性spacing是:
“间隔属性确定排列视图之间的最小间距。”
因此,我可以将其用于最小间距要求,但对于第一个有三个项的示例,我想我需要定义堆栈视图的大小和位置,如doco中所述:
“沿其轴线定义堆栈的大小。在这种情况下,将堆栈的两条边沿其轴插入到其superview,在该维度中定义堆栈视图的大小。您还需要将另一条边缘钉住以定义堆栈视图的位置。堆栈视图的大小和内容沿其轴定位以填充定义的空间;然而,未固定的边缘根据最大排列视图的大小自由移动。”
但现在的问题是:
谢谢!
发布于 2018-01-31 16:42:52
这其实很容易。
对于中的任何项目,在自动收费.
(如果它是一个堆栈视图,或者仅仅是一个普通视图,则没有任何区别。因此,首先,教自己如何使用简单的视图来做这件事。)
你的意思是你希望视图是的,就像superview一样宽。但是,可以扩大范围。
你所做的就是在你的例子中-附加左边的边-不附加右边的边-设置宽度相等,但实际上,选择">=“选项。
就这么简单!
这将完美地在您的堆栈视图情况下工作。
(当然,只需在堆栈视图上选择“填充”:这样,在只有少数的情况下,它就会“将它们”分隔开。)当然,请注意,显然,您必须将滚动视图合并到项目中,如果这是您想要的,当它们“关闭在右边”时。)
https://stackoverflow.com/questions/43243384
复制相似问题