斯威夫特 iOS。多行 UILabel 背景颜色跟随文本

Posted

技术标签:

【中文标题】斯威夫特 iOS。多行 UILabel 背景颜色跟随文本【英文标题】:Swift iOS. Multi line UILabel background color to follow the text 【发布时间】:2016-10-30 07:26:11 【问题描述】:

我有一个多行 UILabel,我想将其背景颜色设置为与使用鼠标突出显示 Web 浏览器上的文本时完全相同但似乎找不到解决方案。

这是我在故事板中得到的:

这就是我的目标:

这是我上面提到的浏览器示例:

【问题讨论】:

【参考方案1】:

是的,使用属性文本。快来这里

let textBgColor = UIColor.greenColor()
let attributes = [
        NSBackgroundColorAttributeName : textBgColor
]
let attributedString = NSAttributedString(string: Constant.kDescriptionArray[0], attributes: attributes)

descriptionLabel.attributedText = attributedString

【讨论】:

【参考方案2】:

尝试使用属性字符串

NSMutableAttributedString *string = [[NSMutableAttributedString alloc]
                                   initWithString:@"Some text line Some text line\nSome text line"];
[string addAttribute:NSBackgroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, string.length)];
titleLabel.attributedText = string;

编辑: Eric 需要帮助来编写快速代码。我刚刚发布了我拥有的代码,任何具有简单 Swift 知识的人都应该能够编写 Swift 代码:)。毕竟都是关于学习的:)

但是这里的任何方式都是快速代码。

    let string = NSMutableAttributedString(string: "blah blah", attributes: [NSBackgroundColorAttributeName: UIColor.redColor()])
    label.attributedText = string

【讨论】:

您的答案可能是正确的,但该问题专门要求提供 Swift 代码示例,而不是 Objective-C。请编辑。谢谢!

以上是关于斯威夫特 iOS。多行 UILabel 背景颜色跟随文本的主要内容,如果未能解决你的问题,请参考以下文章

UIProgressBar:如何根据背景颜色更改 UILabel 颜色

如何将 UILabel 文本颜色与其背景匹配? [复制]

UILabel 自动改变颜色

IOS 给UILabel字体加一个带颜色的边框

iOS:UILabel 之后的 UIImageView 与多行

iOS:动态添加多行 UILabel