Sha*_*Man 3 uilabel uicolor uifont ios swift
我试图将3个变量放在同一个UILabel中,以强调第二个单词.
有了一个变量就可以了.(选项1)
//Option 1 That work with one variable
labelBoldAnswer.attributedText = secondWordBoldRed
Run Code Online (Sandbox Code Playgroud)
结果1是:大胆和红色

import UIKit
Run Code Online (Sandbox Code Playgroud)
class 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)")
Run Code Online (Sandbox Code Playgroud)
}
第二个尝试
有三个变量,它显示所有带代码的文本,而不是在第一个和第三个单词的中心显示更大的文本和红色.(选项2)
//Option 2 That work partialy
labelBoldAnswer.text = ("\(firstWord), \(secondWordBoldRed), \(thirdWord)")
Run Code Online (Sandbox Code Playgroud)
结果2不完美:

import UIKit
Run Code Online (Sandbox Code Playgroud)
class 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)")
Run Code Online (Sandbox Code Playgroud)
}
谢谢你的帮助!
您需要执行以下操作:
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)
Run Code Online (Sandbox Code Playgroud)
这将创建一个a混合了多个属性的字符串。
您可以构建属性字符串,也可以在不同的部分添加属性:
let firstWord = "First Word"
let secondWord = "Insert Text"
let attrs = [NSFontAttributeName: UIFont.boldSystemFontOfSize(20), NSForegroundColorAttributeName: UIColor.redColor()]
let thirdWord = "Third Word"
let attributedText = NSMutableAttributedString(string:firstWord)
attributedText.appendAttributedString(NSAttributedString(string: secondWord, attributes: attrs))
attributedText.appendAttributedString(NSAttributedString(string: thirdWord))
textField.attributedText = attributedText
Run Code Online (Sandbox Code Playgroud)
或者创建东西,然后在范围中添加属性.由于NSAttributedString使用NSRange和Swift String使用,这有点复杂Range<String.index>.
let firstWord = "First Word"
let secondWord = "Insert Text"
let thirdWord = "Third Word"
let comboWord = firstWord + secondWord + thirdWord
let attributedText = NSMutableAttributedString(string:comboWord)
let attrs = [NSFontAttributeName: UIFont.boldSystemFontOfSize(20), NSForegroundColorAttributeName: UIColor.redColor()]
let range = NSString(string: comboWord).rangeOfString(secondWord)
attributedText.addAttributes(attrs, range: range)
textField.attributedText = attributedText
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4792 次 |
| 最近记录: |