只根据需要制作标签?

时间:2017-02-20 08:51:38

标签: ios label

我在这样的水平堆栈视图中有3个标签彼此相邻

stackview

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

我不希望每个单词之间有额外的空格,因为如果单词很短,它会显得很奇怪。有没有办法让标签只有它们需要的宽度才能适合他们的文字?这样它看起来就像一个标签(除了我让中间标签有较小的文字)。

5 个答案:

答案 0 :(得分:2)

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

enter image description here

enter image description here

答案 1 :(得分:1)

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

答案 2 :(得分:1)

如果您希望标签中的内容使用不同的字体,则可以使用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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

您可以使用autolayout解决此问题。