Swift故事板-将图标和多行文字水平居中

时间:2019-06-12 13:07:18

标签: ios swift nslayoutconstraint xcode-storyboard

我正在尝试创建一个Android风格的Snackbar。所有的行为都是正确的,但是我剩下一个布局问题。实际上,我已经将其分解为一个测试应用程序,以简化操作。

enter image description here

该栏固定在视图的底部,并包含一个图标(UIImageView)和一些文本(UILabel)。此文字最多可包含2行。

例如,它应该能够向外扩展:-

enter image description here

但是,要使事情进一步复杂化,我需要它,以便图标和文本位于红色条的中心,然后从中心散开,直到需要包裹为止。请注意,图标的开头和文本的末尾都有一个填充,以防止其碰到侧面。集中内容的一个例子是..

enter image description here

我无法获得正确的布局。我认为问题一直在试图使两个项目居中,同时要符合不超过边缘界限的宽度,从而导致约束冲突。我也尝试过将图标和标签嵌入水平堆栈视图中,但在将所有内容居中时似乎找不到正确的填充选项。

我什至尝试使用NSAttributed字符串并将图像添加到文本本身,但是当文本换行时,图标的大小和/或放错了位置。

如您所见,我一直在Storyboard中进行此操作,但是如果它能更好地满足此目的,我将很高兴以编程方式进行此操作。

1 个答案:

答案 0 :(得分:2)

创建此Demo 供参考,这是一个简单的任务,即在红色视图内制作一个嵌套视图,其优先级为centerX约束为1000,领先的约束为999

enter image description here

现在你有这个效果

enter image description here