Променете цвета на буквата на табличния изглед, ако бъде намерен текст в лентата за търсене

Имам лента за търсене и изглед на таблица. Мога да филтрирам елементи за изглед на таблица въз основа на текст в лентата за търсене. Но трябва да променя цвета на намерената буква. Например, ако напиша HE в лентата за търсене, искам да покажа HELLO в табличен изглед, но цветът на HE трябва да е различен от LLO.

Благодаря за идеите.


person Berker    schedule 19.09.2017    source източник
comment
Вижте NSAttributedString   -  person jonaszmclaren    schedule 19.09.2017


Отговори (2)


използвайте NSMutableAttributedString за вашата концепция, тук казвам логиката, персонализирайте се там, където имате нужда (трябва да се обадите вътре в cellForRow)

    lblcheck.text = "hello" // is the original text 
    lblcheck.textColor = UIColor.red // initally set the whole color for your text
    //Create mutable string from original one
    let attString = NSMutableAttributedString(string: lblcheck.text!)
    //Fing range of the string you want to change colour
    //If you need to change colour in more that one place just repeat it
    let range: NSRange = (lblcheck.text! as NSString).range(of: "he", options: .caseInsensitive) //he in here use searchBar.text
    attString.addAttribute(NSForegroundColorAttributeName, value: UIColor.white, range: range) // here set selection color what ever you typed
    //Add it to the label - notice its not text property but it's attributeText
    lblcheck.attributedText = attString
person Anbu.Karthik    schedule 19.09.2017

Промяната на цвета на текста може да се извърши с помощта на NSAttributedString. Когато покажете вашите резултати от търсенето, във вашия cellForRow делегиран метод, вземете низ за търсене и заменете думата във вашата textView с NSAttributedString версия. Можете да промените цвета за конкретния низ във вашия NSAttributedString.

Това е общата идея, без да виждате код.

person Fangming    schedule 19.09.2017
comment
Благодаря. използвах NSAttributedString, както казахте вие ​​и anbu.kartnik. - person Berker; 19.09.2017