Swift 3.0將UILabel數(shù)字顏色設(shè)置為紅色的方法
實現(xiàn)需求
這篇文章源于群友的一個問題:如何把『注:此商品只能整件(12的倍數(shù)發(fā)貨),已選1袋,還差11袋』這段文字中的數(shù)字使用紅色在 UILabel 中顯示?
實現(xiàn)思路
我們可以使用UILabel 的 attribute string 屬性,通過正則表達式匹配獲取數(shù)字的范圍,然后添加對應(yīng)的 attribute。
實現(xiàn)代碼
下面是實現(xiàn)代碼,使用 swift 3.0 編寫:
//根據(jù)正則表達式改變文字顏色 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的倍數(shù)發(fā)貨),已選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 里面運行。
當(dāng)然,這里可以不使用正則表達式,用其他方法也可以做到,但是正則表達式的做法比較靈活,以后如果有新的需求可以直接修改正則表達式就可以實現(xiàn)。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Objective-c代碼如何移植為Swift代碼 Objective-c代碼轉(zhuǎn)移到Swift過程介紹
這篇文章主要介紹了Objective-c代碼如何移植為Swift代碼,Objective-c代碼轉(zhuǎn)移到Swift過程介紹,需要的朋友可以參考下2014-07-07如何利用SwiftUI實現(xiàn)可縮放的圖片預(yù)覽器
這篇文章主要給大家介紹了關(guān)于如何利用SwiftUI實現(xiàn)可縮放圖片預(yù)覽器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用SwiftUI具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2021-09-09SwiftUI開發(fā)總結(jié)combine原理簡單示例詳解
這篇文章主要為大家介紹了SwiftUI開發(fā)總結(jié)combine原理簡單示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02Swift高階函數(shù)contains?allSatisfy?reversed?lexicographicallyPr
這篇文章主要為大家介紹了Swift高階函數(shù)contains?allSatisfy?reversed?lexicographicallyPrecedes用法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06Swift下使用UICollectionView 實現(xiàn)長按拖拽功能
拖拽排序是新聞類的App可以說是必有的交互設(shè)計,如今日頭條,網(wǎng)易新聞等。這篇文章主要介紹了Swift下使用UICollectionView 長按拖拽功能,需要的朋友可以參考下2017-03-03