只要标签的宽度符合要求?

我在这样的水平堆栈视图内有3个标签

stackview

第一个和最后一个标签将被dynamic填充一个可变长度的单词,而中间的单词总是包含单词“with”,例如:“用Swift编码!

我不想在每个单词之间留出额外的空间,因为如果单词很短,看起来很奇怪。 有没有什么方法可以使标签的宽度与他们所需的宽度相匹配? 这样,它看起来像一个标签(除了我让中间的标签有较小的文字)。

在UIView中添加3个标签,而不是堆栈视图。 并设置约束如图所示。

在这里输入图像说明

在这里输入图像说明

如何使用自动布局? 您可以在标签之间给出一个0的水平空间,并为中间的宽度给出一个约束。

如果你希望标签中的内容有不同的字体,你可以使用NSAttributedString

let boldFontDict:[String: AnyObject] = [NSForegroundColorAttributeName : UIColor.black, NSFontAttributeName: <UI Font>] let 1stString = NSAttributedString(string: "Hello") let 2ndString = NSAttributedString(string: "hii", attributes: boldFOntDict) let finalAttrStr = NSMutableAttributedString(attributedString: 1stString) finalAttrStr.append(2ndString) myLabel.attributedText = finalAttrStr 

您可以采取一个标签,而不是采取三个标签,并将标签上的文字设置为

  label.text= firstLabel.text + "with" + lastLabel.text 

您可以使用自动布局来解决这个问题。