我试图将 3个变量放在同一UILabel中,以强调第二个单词。
使用一个变量,就可以了。 (选项1)
//Option 1 That work with one variable
labelBoldAnswer.attributedText = secondWordBoldRed
结果1是:粗体和红色
import UIKit
类ViewController:UIViewController,UITextFieldDelegate {
@IBOutlet weak var textFieldOriginal : UITextField!
@IBOutlet weak var labelBoldAnswer : UILabel!
@IBAction func ButtonBold(sender: AnyObject) {
var firstWord = "First Word"
var thirdWord = "Third Word"
var attrs = [NSFontAttributeName: UIFont.boldSystemFontOfSize(20), NSForegroundColorAttributeName: UIColor.redColor()]
var secondWordBoldRed = NSMutableAttributedString (string:textFieldOriginal.text, attributes: attrs)
//Option 1 That work with one variable
labelBoldAnswer.attributedText = secondWordBoldRed
//Option 2 That work partialy
//labelBoldAnswer.text = ("\(firstWord), \(secondWordBoldRed), \(thirdWord)")
}
第二尝试
具有三个变量,它显示所有带有代码的文本,而不是在第一个和第三个单词的中心显示较大的文本和红色。 (选项2)
//Option 2 That work partialy
labelBoldAnswer.text = ("\(firstWord), \(secondWordBoldRed), \(thirdWord)")
结果2并不完美:
import UIKit
类ViewController:UIViewController,UITextFieldDelegate {
@IBOutlet weak var textFieldOriginal : UITextField!
@IBOutlet weak var labelBoldAnswer : UILabel!
@IBAction func ButtonBold(sender: AnyObject) {
var firstWord = "First Word"
var thirdWord = "Third Word"
var attrs = [NSFontAttributeName: UIFont.boldSystemFontOfSize(20), NSForegroundColorAttributeName: UIColor.redColor()]
var secondWordBoldRed = NSMutableAttributedString (string:textFieldOriginal.text, attributes: attrs)
//Option 1 That work with one variable
//labelBoldAnswer.attributedText = secondWordBoldRed
//Option 2 That work partialy
labelBoldAnswer.text = ("\(firstWord), \(secondWordBoldRed), \(thirdWord)")
}
谢谢你的帮助!
最佳答案
您需要执行以下操作:
let attrsA = [NSFontAttributeName: UIFont.boldSystemFontOfSize(10)]
var a = NSMutableAttributedString(string:"hello", attributes:attrsA)
let attrsB = [NSFontAttributeName: UIFont.boldSystemFontOfSize(20), NSForegroundColorAttributeName: UIColor.redColor()]
let b = NSAttributedString(string:"world", attributes:attrsB)
a.appendAttributedString(b)
这将创建一个混合了多个属性的字符串
a
。