【问题标题】:Color Part of String字符串的颜色部分
【发布时间】:2020-04-22 10:21:25
【问题描述】:

我试图在 Swift5 中使用下面的代码为字符串的一部分着色,问题是字符串是一个变量并且还不存在,因此代码不起作用。

代码使用存在的字符串工作:

let main_string = "Headline 5"
let string_to_color = "5"

但这不起作用:

let main_string = "Headline "
let string_to_color = "\(stringTime) min" //stringTime is a string of a number, for example "21"


let range = (main_string as NSString).range(of: string_to_color)

let attribute = NSMutableAttributedString.init(string: main_string)
attribute.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red , range: range)

 self.Label.attributedText = attribute

知道如何让它在作为变量的字符串中着色并将其添加到我的字符串中吗?

【问题讨论】:

    标签: swift string nsstring nsattributedstring


    【解决方案1】:

    对于这个例子,我有一个每秒触发一次的计时器,然后在显示的字符串中间建立一个带有递增计数器变量的字符串 - 这是否符合您的需要?

    class ViewController: UIViewController {
    
    @IBOutlet weak var lblDisplay: UILabel!
    var timer : Timer!
    var timerLoop : Int = 0
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timerFired), userInfo: nil, repeats: true)
    }
    
    @objc func timerFired()
    {
        timerLoop += 1
    
        let main_string = "First part \(timerLoop) second part"
        let string_to_color = "\(timerLoop)" //stringTime is a string of a number, for example "21"
    
    
        let range = (main_string as NSString).range(of: string_to_color)
    
        let attribute = NSMutableAttributedString.init(string: main_string)
        attribute.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red , range: range)
    
         self.lblDisplay.attributedText = attribute
    }
    

    }

    【讨论】:

    • 所以我想我必须先将整个字符串包含在 main 中,然后才能对部分进行着色?并使用不同的方式将字符串格式化为更短或不同。
    • 是的 - 如果您只是在字符串中添加一个数字,那么就像显示的示例一样。
    猜你喜欢
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 2022-11-22
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多