2017-11-13 9 views
0

こんにちはこのフォームにuilabelテキストを表示する方法を知りたいですか?下図に示すように、すべてをハイライト表示されませdoest updatedStr =「ファッションガジェットの旅」が、ハイライトのテキストをデバッグの実際の中にUILabelでいくつかの異なるテキストを強調表示

let str = value as? String 
let updatedStr = str?.replacingOccurrences(of: ",", with: "  ") 
self.myInterestsLbl.text = updatedStr 

//Highlight Text 
let string = self.myInterestsLbl.text 

if string?.range(of:"Fashion") != nil { 
let fashion = "Fashion" 
let range = (string! as NSString).range(of: fashion) 
let attributedText = NSMutableAttributedString.init(string: string!)          attributedText.addAttribute(NSBackgroundColorAttributeName, value: UIColor(red: 0.98, green: 0.84, blue: 0.04, alpha: 1.0) , range: range) 
self.myInterestsLbl.attributedText = attributedText 
} 

if string?.range(of:"Gadgets") != nil { 
let fashion = "Gadgets" 
let range = (string! as NSString).range(of: fashion) 
let attributedText = NSMutableAttributedString.init(string: string!)           attributedText.addAttribute(NSBackgroundColorAttributeName, value: UIColor(red: 0.98, green: 0.84, blue: 0.04, alpha: 1.0) , range: range) 
self.myInterestsLbl.attributedText = attributedText 
} 

enter image description here

。私が望む結果は、上記のイメージです。

enter image description here

+0

私はあなたが以下にようにコードが出力を示し、言おうとしているか理解していませんでした。 – Warewolf

+0

ファッションとガジェットの両方が色の変化をしていると答えようとしている場合は、以下の回答を確認してください。私はいくつかの変更を行いました。 – Warewolf

+0

@Warewolfこんにちは、質問広告を編集しました。私が望む結果は、最初のイメージです。しかし私のコードでは、結果は下の画像を表示します。 –

答えて

0
@IBOutlet weak var myInterestsLbl:UILabel? 


    let str = "Fashion Gadgets Travel"; 

    let updatedStr = str.replacingOccurrences(of: ",", with: "  "); 
    self.myInterestsLbl!.text = updatedStr; 

    //Highlight Text 
    let string = self.myInterestsLbl!.text; 

    if string?.range(of:"Fashion") != nil { 
     let fashion = "Fashion"; 
     let range = (string! as NSString).range(of: fashion); 

     let attributedText = NSMutableAttributedString.init(string: string!); 
     attributedText.addAttribute(NSBackgroundColorAttributeName, value: UIColor(red: 0.98, green: 0.84, blue: 0.04, alpha: 1.0) , range: range); 
     self.myInterestsLbl!.attributedText = attributedText; 
    } 

    if string?.range(of:"Gadgets") != nil { 
     let fashion = "Gadgets"; 
     let range = (string! as NSString).range(of: fashion); 
     let attributedText = self.myInterestsLbl!.attributedText as? NSMutableAttributedString; // You did mistake here. You were initialising it via String variable instead of changed attributed string. 
     attributedText?.addAttribute(NSBackgroundColorAttributeName, value: UIColor(red: 0.98, green: 0.84, blue: 0.04, alpha: 1.0) , range: range); 
     self.myInterestsLbl!.attributedText = attributedText; 
    } 
+0

しかし、あなたはボーダーの角の半径を作る方法を知っていますか? –

+0

これはライブラリを使用する必要があります。あなたがポッドを使用している場合は、属性テキストの場合はhttps://github.com/zekunyan/TTGTagCollectionViewまたはhttps://stackoverflow.com/a/16423399/1305001に従ってください。 – Warewolf

+0

よろしくお願いします。助けてくれてありがとう@warewolf :) –

関連する問題