程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Swift 3.0將UILabel數字顏色設置為紅色的方法

Swift 3.0將UILabel數字顏色設置為紅色的方法

編輯:更多關於編程

Swift 3.0將UILabel數字顏色設置為紅色的方法。本站提示廣大學習愛好者:(Swift 3.0將UILabel數字顏色設置為紅色的方法)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift 3.0將UILabel數字顏色設置為紅色的方法正文


實現需求

這篇文章源於群友的一個問題:如何把『注:此商品只能整件(12的倍數發貨),已選1袋,還差11袋』這段文字中的數字使用紅色在 UILabel 中顯示?

實現思路

我們可以使用UILabel 的 attribute string 屬性,通過正則表達式匹配獲取數字的范圍,然後添加對應的 attribute。

實現代碼

下面是實現代碼,使用 swift 3.0 編寫:

//根據正則表達式改變文字顏色
func changeTextChange(regex: String, text: String, color: UIColor) -> NSMutableAttributedString
{
 let attributeString = NSMutableAttributedString(string: text)
 do {
  let regexExpression = try NSRegularExpression(pattern: regex, options: NSRegularExpression.Options())
  let result = regexExpression.matches(in: text, options: NSRegularExpression.MatchingOptions(), range: NSMakeRange(0, text.characters.count))
  for item in result {
   attributeString.addAttribute(NSForegroundColorAttributeName, value: color, range: item.range)
  }
 } catch {
  print("Failed with error: \(error)")
 }
 return attributeString
}
let text = "注:此商品只能整件(12的倍數發貨),已選1袋,還差11袋"
let renderLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 800, height: 30))
renderLabel.textAlignment = NSTextAlignment.center
renderLabel.backgroundColor = UIColor.lightGray
renderLabel.font = UIFont.boldSystemFont(ofSize: 20)
renderLabel.attributedText = changeTextChange(regex: "\\d+", text: text, color: UIColor.red)

可以把以上這段代碼放到 playground 裡面運行。

當然,這裡可以不使用正則表達式,用其他方法也可以做到,但是正則表達式的做法比較靈活,以後如果有新的需求可以直接修改正則表達式就可以實現。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved