有背景颜色包UILabel

时间:2017-11-03 02:20:48

标签: ios swift uilabel

我正在尝试显示以下内容

enter image description here

但是在设置文本背景颜色时,它会扩展整个背景并填充比我想要的更多,因为我只是尝试应用“突出显示”文本功能。任何想法将不胜感激

2 个答案:

答案 0 :(得分:1)

我们无法在iOS中包装视图的颜色,可能性是

  1. 像Nathan说的那样保留重复的UILabel。
  2. 设计画布并将其指定给“UIImageView”。
  3. 我认为最后一种可能性是更好的实施方式

    您还可以查看有关此查询的GitHub repository

答案 1 :(得分:0)

你可以这样做 - 首先在文本中迭代一行,然后用线条应用背景颜色。我在这里使用了Multi-line String Literals。 使用NSBackgroundColorAttributeName将颜色应用于线条。

   @IBOutlet weak var myLabel: UILabel!

    myLabel.text = """
    GET
    MORE LIVES
    """
    myLabel.numberOfLines = 0
    let attributeString = NSMutableAttributedString(string: myLabel.text!)
    let labelText = myLabel.text!
    var lines: [String] = []
    labelText.enumerateLines { line, _ in
        lines.append(line)
    }
    print(lines)//lines in your text
    var startIndex = 0
    for value in lines {
    //Apply background color to lines
        attributeString.addAttribute(NSBackgroundColorAttributeName, value: UIColor.red, range: NSRange(location: startIndex, length: value.characters.count))
        startIndex = startIndex + value.characters.count + 1
    //startIndex will locate new line's first index
    }
    //Assign attributedText to your label
    myLabel.attributedText = attributeString