有背景颜色换行 UILabel [重复]
Posted
技术标签:
【中文标题】有背景颜色换行 UILabel [重复]【英文标题】:Have background color wrap UILabel [duplicate] 【发布时间】:2017-11-03 02:20:47 【问题描述】:我正在尝试显示以下内容
但是在设置文本背景颜色时,它会扩展整个背景并填充比我想要的更多,因为我只是想应用“突出显示”文本功能。任何想法将不胜感激
【问题讨论】:
子视图?子类化?没有一点代码很难说。现在我看到一个 container 视图 - 背景颜色是白色或透明 - 有 2 个,也许是 3 个子视图,每个UILabel
具有红色背景和白色字体颜色。但同样,鉴于您提供的小细节,我不确定我是否正在解决 *your8 问题。
【参考方案1】:
您可以这样做 - 首先迭代文本中的线条,然后使用线条应用背景颜色。这里我使用了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
【讨论】:
【参考方案2】:我们不能在 ios 中包装视图的颜色,可能性是
-
如 Nathan 所说,保留重复的 UILabel。
设计画布并将其分配给“UIImageView”。
我认为最后一种可能性是更好的实现方式
你也可以查看我的GitHub repository关于这个查询。
【讨论】:
以上是关于有背景颜色换行 UILabel [重复]的主要内容,如果未能解决你的问题,请参考以下文章