我试图将 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

08-05 23:20
查看更多