繁体   English   中英

UIStackView内部的动态视图

[英]Dynamic views inside UIStackView

我要实现的是有两个容器视图,其中将有两个标签。 此标签是动态设置的,代表百分比或美元金额。 我在它们之间也有图像视图。 我要实现的是“容器视图-图像-容器视图”。 我遇到的问题如下:假设左侧容器的百分比值(从0到100),右侧容器视图的美元金额(可能高达数百万美元)。 我想做的是使标签动态调整大小并占用尽可能少的空间。 以下是一些可以更好理解的图像:

这是我遇到的问题:百分比是个位数,占用的空间很小,而美元金额太长,要么完全被碎石切断,要么就堆积

我正在使用堆栈视图来间隔三个视图。 这甚至是解决问题的正确方法吗?

故事板

编辑:这是我试图实现的最终结果:

最终结果

您可以使用堆栈视图执行此操作。 这是您需要做的:

  1. 将图像视图的内容拥抱和抗压缩优先级设置为一个较小的数字,例如100。这将使图像视图拉伸以填充额外的空间,或收缩以为数字保留更多的空间。

  2. 在图像视图上设置最小宽度限制,以使在数字很大的情况下不会缩小到最小。 为此,可在图像视图上创建宽度约束,然后将其编辑为而不是=

    您的图像视图约束最终应像这样:

    图像视图约束

  3. 将图像视图的内容模式设置为“宽高比”。 这将使其根据需要缩小或增大箭头图像以适合可用空间而不会变形:

    箭头内容模式

  4. 对于您的标签,将Autoshrink设置为“最小字体比例”(0.5),然后打开“ Tighten Letter Spacing”。 如果没有足够的空间容纳全尺寸的所有物品,这将允许标签进行调整:

    标签设定

结果:

演示屏幕截图

选择您的StackView并打开“ 属性”检查器,分布更改为“ 按比例填充” 我还将测试非常大的数字,以查看它如何影响StackView的外观,但是如果我正确理解的话,这应该可以工作。

暂无
暂无

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

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